home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 019a / bingo21b.zip / BINGO.DOC < prev    next >
Text File  |  1991-10-13  |  196KB  |  5,247 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.                           The Bingo Programmer's Text Editor
  7.                                  A Shareware Product
  8.                                     Version 2.10a
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.                                    Reference Manual
  26.                                Copyright 1989,1990,1991
  27.                               Christopher R. S. Schanck
  28.  
  29.                                   September 27, 1991
  30.  
  31.  
  32.  
  33.  
  34.                              An Apology and some Comments
  35.                              ----------------------------
  36.  
  37.                Folks, I am sorry.  Version 2.10 shipped with a fairly major
  38.           bug present in how Bingo edited at or near the end of the file. 
  39.           This bug was masked by debugging code, and then the fix for it
  40.           was optimized out.  How we missed it during beta-test is a tale
  41.           of woe regarding version control, and is not really important.  
  42.                To make amends, version 2.10a shipped with 3 weeks of
  43.           version 2.10, sans bug.  For a complete description of the
  44.           differences between versions 2.10 and 2.10a, PLEASE read the
  45.           READ.ME file.  Version 2.10a will not count as an upgrade, though
  46.           it is being mailed to everyone with a currently registered copy
  47.           of 2.10.
  48.                Again, my apologies.  "The Last Known Bug Is Dead -- Long
  49.           Live The Last Know Bug!" -- "David's Sling", Marc Stiegler,
  50.           Copyright 1988, Baen Books.  A *very* good read.
  51.  
  52.  
  53.  
  54.  
  55.                                   Table of Contents
  56.                                   -----------------
  57.  
  58.           Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   1
  59.                Philosophy . . . . . . . . . . . . . . . . . . . . . . .   2
  60.                The Shareware Concept and Registering  . . . . . . . . .   4
  61.                Things to Come (Maybe) . . . . . . . . . . . . . . . . .   5
  62.                Support  . . . . . . . . . . . . . . . . . . . . . . . .   6
  63.                CompuServe . . . . . . . . . . . . . . . . . . . . . . .   6
  64.                Getting the Latest Version . . . . . . . . . . . . . . .   6
  65.                Using this Manual  . . . . . . . . . . . . . . . . . . .   7
  66.  
  67.           Critical Short Sections . . . . . . . . . . . . . . . . . . .   8
  68.                Installing Bingo . . . . . . . . . . . . . . . . . . . .   8
  69.                Invoking Bingo . . . . . . . . . . . . . . . . . . . . .   9
  70.                Virtual Memory & the PAGESIZE Utility  . . . . . . . . .  10
  71.                Impact of Virtual Memory on Performance  . . . . . . . .  11
  72.                Bingo and Larger Screen Displays . . . . . . . . . . . .  12
  73.                Bingo's Menu System  . . . . . . . . . . . . . . . . . .  13
  74.                Bingo's Dialogue Boxes . . . . . . . . . . . . . . . . .  14
  75.                     String Entry Boxes  . . . . . . . . . . . . . . . .  14
  76.                     Yes/No Boxes  . . . . . . . . . . . . . . . . . . .  14
  77.                     Non-Editable Display Boxes  . . . . . . . . . . . .  14
  78.                     List-Picking Boxes  . . . . . . . . . . . . . . . .  15
  79.                Directory Lister . . . . . . . . . . . . . . . . . . . .  16
  80.                Bingo and File Names . . . . . . . . . . . . . . . . . .  16
  81.                The Status Line  . . . . . . . . . . . . . . . . . . . .  18
  82.                KEYCFG: The Keyboard Configuration Program . . . . . . .  19
  83.                     Key Names . . . . . . . . . . . . . . . . . . . . .  19
  84.                     'open_end' Identifier . . . . . . . . . . . . . . .  23
  85.                     'cur_file' Identifier . . . . . . . . . . . . . . .  23
  86.                     KEYCFG Command Line Options . . . . . . . . . . . .  24
  87.                Bingo & The Mouse  . . . . . . . . . . . . . . . . . . .  25
  88.                     The Mouse Cursor  . . . . . . . . . . . . . . . . .  25
  89.                     The Mouse at the General Editing Level  . . . . . .  25
  90.                     The Mouse and The Menus . . . . . . . . . . . . . .  27
  91.                     The Mouse & Dialogue Boxes  . . . . . . . . . . . .  29
  92.                          String Entry Boxes . . . . . . . . . . . . . .  29
  93.                          Yes/No Boxes . . . . . . . . . . . . . . . . .  29
  94.                          Non-Editable Display Boxes . . . . . . . . . .  29
  95.                          List-Picking Boxes . . . . . . . . . . . . . .  29
  96.                     The Mouse and The ASCII Table . . . . . . . . . . .  30
  97.  
  98.           Basic Editing . . . . . . . . . . . . . . . . . . . . . . . .  31
  99.                The Destructive Backspace  . . . . . . . . . . . . . . .  31
  100.                Delete EOL vs. Delete Line vs. Delete BOL  . . . . . . .  31
  101.                Deleting Words . . . . . . . . . . . . . . . . . . . . .  31
  102.  
  103.           File Handling . . . . . . . . . . . . . . . . . . . . . . . .  32
  104.                Edit_file & Load_file  . . . . . . . . . . . . . . . . .  32
  105.                Choose_file  . . . . . . . . . . . . . . . . . . . . . .  32
  106.                Rename_file  . . . . . . . . . . . . . . . . . . . . . .  32
  107.                Quit . . . . . . . . . . . . . . . . . . . . . . . . . .  32
  108.                Quit_all . . . . . . . . . . . . . . . . . . . . . . . .  32
  109.  
  110.  
  111.  
  112.  
  113.                Abort & Abort_all  . . . . . . . . . . . . . . . . . . .  33
  114.                Delete_file  . . . . . . . . . . . . . . . . . . . . . .  34
  115.                Zap_file . . . . . . . . . . . . . . . . . . . . . . . .  34
  116.                Modify_save & Modify_save_all  . . . . . . . . . . . . .  34
  117.                Switch_file  . . . . . . . . . . . . . . . . . . . . . .  34
  118.                Clean_file & Clean_all . . . . . . . . . . . . . . . . .  34
  119.                Pick_file  . . . . . . . . . . . . . . . . . . . . . . .  34
  120.  
  121.           Searching . . . . . . . . . . . . . . . . . . . . . . . . . .  35
  122.  
  123.           Navigation  . . . . . . . . . . . . . . . . . . . . . . . . .  36
  124.  
  125.           Block Handling  . . . . . . . . . . . . . . . . . . . . . . .  37
  126.                Marking  . . . . . . . . . . . . . . . . . . . . . . . .  37
  127.                Operations on Blocks . . . . . . . . . . . . . . . . . .  37
  128.                Named Buffers  . . . . . . . . . . . . . . . . . . . . .  38
  129.                Miscellaneous Functions  . . . . . . . . . . . . . . . .  38
  130.  
  131.           Utilities . . . . . . . . . . . . . . . . . . . . . . . . . .  39
  132.  
  133.           Extra Functions . . . . . . . . . . . . . . . . . . . . . . .  40
  134.                Help . . . . . . . . . . . . . . . . . . . . . . . . . .  40
  135.                Info . . . . . . . . . . . . . . . . . . . . . . . . . .  40
  136.                Pick & Exec  . . . . . . . . . . . . . . . . . . . . . .  40
  137.                Quit and Save Status . . . . . . . . . . . . . . . . . .  40
  138.                Global . . . . . . . . . . . . . . . . . . . . . . . . .  41
  139.                Ascii_table  . . . . . . . . . . . . . . . . . . . . . .  41
  140.                Load_ & Write_profile  . . . . . . . . . . . . . . . . .  41
  141.                Repeat_last  . . . . . . . . . . . . . . . . . . . . . .  42
  142.                Display_file . . . . . . . . . . . . . . . . . . . . . .  42
  143.  
  144.           System Operations . . . . . . . . . . . . . . . . . . . . . .  43
  145.                Changing Directories . . . . . . . . . . . . . . . . . .  43
  146.                Simple Execution & Shelling  . . . . . . . . . . . . . .  43
  147.                Swap Execution & Shelling  . . . . . . . . . . . . . . .  43
  148.  
  149.           Macros  . . . . . . . . . . . . . . . . . . . . . . . . . . .  45
  150.                Macro Space  . . . . . . . . . . . . . . . . . . . . . .  45
  151.                Defining Macros  . . . . . . . . . . . . . . . . . . . .  46
  152.                Saving Macros  . . . . . . . . . . . . . . . . . . . . .  47
  153.                Saving the Entire Key Set  . . . . . . . . . . . . . . .  47
  154.                Executing a Macro File . . . . . . . . . . . . . . . . .  47
  155.  
  156.           Windows . . . . . . . . . . . . . . . . . . . . . . . . . . .  48
  157.                Window_split, _edit & _load  . . . . . . . . . . . . . .  48
  158.                Window_vertical  . . . . . . . . . . . . . . . . . . . .  48
  159.                Window_resize  . . . . . . . . . . . . . . . . . . . . .  48
  160.                Window_one & Window_zoom . . . . . . . . . . . . . . . .  48
  161.  
  162.           Printing  . . . . . . . . . . . . . . . . . . . . . . . . . .  49
  163.  
  164.           Error Parsing and Undo  . . . . . . . . . . . . . . . . . . .  50
  165.                How Error Parsing Works  . . . . . . . . . . . . . . . .  50
  166.                Error Parsing Method . . . . . . . . . . . . . . . . . .  50
  167.  
  168.  
  169.  
  170.  
  171.                Undo Capabilities  . . . . . . . . . . . . . . . . . . .  51
  172.                Manipulating the Undo Stack  . . . . . . . . . . . . . .  51
  173.  
  174.           Configuring Bingo . . . . . . . . . . . . . . . . . . . . . .  52
  175.  
  176.           Function List . . . . . . . . . . . . . . . . . . . . . . . .  53
  177.                General Editing  . . . . . . . . . . . . . . . . . . . .  53
  178.                File Handling  . . . . . . . . . . . . . . . . . . . . .  55
  179.                Searching  . . . . . . . . . . . . . . . . . . . . . . .  57
  180.                Navigation . . . . . . . . . . . . . . . . . . . . . . .  59
  181.                Block Handling . . . . . . . . . . . . . . . . . . . . .  61
  182.                Utilities  . . . . . . . . . . . . . . . . . . . . . . .  63
  183.                Extra Operations . . . . . . . . . . . . . . . . . . . .  65
  184.                System Operations  . . . . . . . . . . . . . . . . . . .  67
  185.                Macros . . . . . . . . . . . . . . . . . . . . . . . . .  68
  186.                Windows  . . . . . . . . . . . . . . . . . . . . . . . .  69
  187.                Printing . . . . . . . . . . . . . . . . . . . . . . . .  70
  188.                Error Parsing and Undo . . . . . . . . . . . . . . . . .  71
  189.                Configuration  . . . . . . . . . . . . . . . . . . . . .  72
  190.  
  191.           License Agreement . . . . . . . . . . . . . . . . . . . . . .  77
  192.  
  193.           Registration Form - Bingo 2.10a . . . . . . . . . . . . . . .  79
  194.  
  195.           The Author  . . . . . . . . . . . . . . . . . . . . . . . . .  81
  196.  
  197.           Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  82
  198.  
  199.           Index . . . . . . . . . . . . . . . . . . . . . . . . . . . .  83
  200.  
  201.  
  202.  
  203.  
  204.                                      Introduction
  205.                                      ------------
  206.  
  207.                This document serves as the reference manual for Bingo
  208.           2.10a.  Bingo is a full-featured text editor at the right price. 
  209.           Some of its features include:
  210.  
  211.           -    high speed execution, with particularly fast searches,
  212.                screen handling, and file I/O
  213.           -    virtual memory for file storage; up to 256 Megabytes of file
  214.                storage possible
  215.           -    full color support
  216.           -    programmable integrated mouse support
  217.           -    support of VGA, EGA, & MCGA extended text modes
  218.           -    superb macro capability
  219.           -    large suite of utility functions: entab; detab; command
  220.                repeat; shift; etc.
  221.           -    custom define your own keyboard setup
  222.           -    complete menu system supporting most Bingo functions
  223.           -    multiple files, multiple windows: view different sections of
  224.                the same file, or different files at the same time
  225.           -    execute DOS commands, including command-line compilers
  226.                within only ~3k of overhead
  227.           -    regular expression search and replace
  228.           -    completely configurable from within itself
  229.           -    use placemarks to mark positions in files
  230.           -    user definable help file
  231.           -    extensive block operation support, include point, line and
  232.                column marking, and two different sets of block operations
  233.           -    one default block buffer, plus 26 additional named buffers
  234.           -    wordwrap, paragraph formatting, and autoindent support
  235.                included for text processing work
  236.           -    C Mode supports programming in the C programming language
  237.           -    User-defined delimiter and indentation matching
  238.           -    directory list picker
  239.           -    execute *any* Bingo function from within Bingo whether it
  240.                has been assigned to a key or not using a 'function picker'
  241.           -    interrupt Bingo at any point and exit, and when you restart
  242.                Bingo it will pick up exactly where you left off
  243.           -    print files & blocks through the serial port, parallel port,
  244.                or to a file, with or without line numbers
  245.           -    set printing left margin, top margin, and lines per page
  246.           -    automatic processing of errors generated by the Borland and
  247.                Microsoft developmental tools.
  248.           -    undelete stack of deleted items
  249.           -    execute any command or macro "globally" over all files in
  250.                the ring
  251.           -    profile files allow file extension specific settings.
  252.  
  253.  
  254.  
  255.  
  256.                              Bingo 2.10a Reference Manual
  257.                                           1
  258.  
  259.  
  260.  
  261.  
  262.           Philosophy
  263.           ----------
  264.  
  265.                Text editors are not required for every system; at least, an
  266.           editor of Bingo's power is not.  If all you require of your
  267.           editor is that it allow you to modify batch files and such, Bingo
  268.           is overkill.  Cheap overkill, but still overkill.  However, if
  269.           you use an editor daily, as a programmer, as a consultant who
  270.           hops from system to system and likes to have his/her own tools,
  271.           or in any other situation where you need to depend on it, Bingo
  272.           could very well be what you are looking for.  Why?  In spite of
  273.           its power, Bingo is very inexpensive, and does some things no
  274.           other editors do, as a look at its feature list will convince
  275.           you.
  276.                People who live with an editor daily for long stretches of
  277.           time know that choosing an editor is a near-religious experience. 
  278.           Defense of your choice develops into a kind of fanaticism.  In
  279.           the Unix world, VI/Emacs wars promise to extend into the next
  280.           millennium!  It was the fact that I could not find an editor I
  281.           was truly comfortable with that prompted me to design Bingo.  In
  282.           doing so I believe I have created an editor that should appeal to
  283.           a broad base of users.  
  284.                Bingo allows a large degree of latitude when it comes to
  285.           assigning keys.  In a complementary fashion, it allows a user
  286.           specified file to be used for help.  Further, because of Bingo's
  287.           extensive and powerful menuing system, you do not need to
  288.           memorize a large number of keystrokes in order to use Bingo
  289.           effectively.  This allows you to get up and going in a minimum
  290.           amount of time.
  291.                Bingo has a large degree of programmable mouse support has
  292.           been added.  I have found mouse use to be very nice when editing,
  293.           and the response has been very enthusiastic.  Version 2.10a added
  294.           an additional mouse primitive 'mouse_scroll' which, combined with
  295.           the macro capability, allows you to scroll and drag with your
  296.           mouse.
  297.                Bingo is optimized for response time.  Screen response in
  298.           particular is very quick, taking full advantage of the PC's
  299.           direct video architecture.  Searches also occur at blazing speed
  300.           -- a must if you spend many hours with an editor.
  301.                Bingo is heavily configurable, all from within the editor
  302.           itself.  This "on-the-fly" ability is a lifesaver if you hop from
  303.           one system to another.
  304.                Bingo has all the standard macro and file handling
  305.           abilities, but it specifically excels at block handling.  Three
  306.           types of marking, 27 buffers to use, and a huge array of
  307.           functions to deal with block operations allow you to use blocks
  308.           to their fullest.
  309.                Especially designed for programmers, Bingo includes a suite
  310.           of utility functions to aid in handling program text.  Functions
  311.           to shift blocks of text left and right, to align blocks, to sort
  312.           blocks, to match delimiters, and to move by indentation are only
  313.  
  314.                              Bingo 2.10a Reference Manual
  315.                                           2
  316.  
  317.  
  318.  
  319.  
  320.           a few of the many handy functions included.  In version 2.10a,
  321.           you can specify just what a delimiter is, say "repeat" and
  322.           "until".  Then you could sit on a "repeat", and let Bingo find
  323.           the matching "until".
  324.                With version 2.01, a powerful regular expression search and
  325.           replace method has been added.  Further, 'profile' files, which
  326.           enable specific text settings to be associated with files having
  327.           certain extensions, are supported.  To make this useful, each
  328.           file (or buffer) in the ring now maintains its own set of these
  329.           settings.  This allows you to have the correct settings for .DOC
  330.           files show up when you load .DOC files, the correct settings for
  331.           .CPP files do likewise, and so on.
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.                              Bingo 2.10a Reference Manual
  373.                                           3
  374.  
  375.  
  376.  
  377.  
  378.           The Shareware Concept and Registering
  379.           -------------------------------------
  380.                This is just a general note as to what Bingo being Shareware
  381.           means to you, the user.  Shareware could just as easily be called
  382.           "Honorware": I depend upon you honor to mail in your payment for
  383.           Bingo if you are using it regularly.  All of the legal jargon
  384.           describing this Shareware concept is contained in the License &
  385.           Registration section of this manual.
  386.                Basically, I depend upon you to mail in your payment for
  387.           Bingo after you have taken a reasonable amount of time to try it
  388.           out.  If you use it regularly, please mail in the payment.  The
  389.           number of man-hours which went into Bingo is incredible; the
  390.           registration fee is a small price to pay. So if you use Bingo
  391.           regularly, send me the registration fee I charge for Bingo --
  392.           it's not much money for a very sharp program.
  393.                When you register, you are entitled to a number of
  394.           advantages, depending on how you register.  If your registration
  395.           is a Single Version registration ($40), these benefits include:
  396.                1) If you request it, I will mail you a copy of the current
  397.                release of Bingo free.
  398.                2) You are entitled to support for 9 months, or until 1
  399.                month past the release of the next version, whichever is
  400.                longer.
  401.           If your registration is a Lifetime registration ($75), your
  402.           benefits are a little more extensive.  They include:
  403.                1) If you request it, I will mail you a copy of the current
  404.                release of Bingo free.
  405.                2) You are entitled to support for as long as Bingo is
  406.                marketed as a product, be it as shareware or commercial.
  407.                3) The next release will be mailed to you free of charge.
  408.                4) You will be notified of each successive release, and each
  409.                will be available to you for a mere $5.00 shipping fee.
  410.  
  411.                In addition, with version 2.01 and beyond, registered users
  412.           of any sort get to have their named emblazoned on their copy for
  413.           all to see;  this way everyone will know what honorable people
  414.           they are.  And no, a simple sector editor cannot change this name
  415.           -- it has to be done here.  The name will be shown on the initial
  416.           screen which is popped up when bingo is executed, and can also be
  417.           accessed from the 'version_info' function.
  418.                Also, some registered users are asked to beta-test upcoming
  419.           versions -- a double-edged sword.  Beta testing is somewhat
  420.           precarious at times, but you do get to take a hand in forming the
  421.           next version.  Plus you get to have your complaints redressed
  422.           faster than the general public.
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.                              Bingo 2.10a Reference Manual
  431.                                           4
  432.  
  433.  
  434.  
  435.  
  436.           Things to Come (Maybe)
  437.           ----------------------
  438.                "The one major thing which still(!) looms in Bingo's future
  439.                is the ability to work with files larger than memory.  I am
  440.                still thinking of implementing a virtual memory method, but
  441.                it may or may not appear in later versions."
  442.  
  443.                This phrase, or something similar, has appeared in the
  444.           documentation of each of the previous versions of Bingo prior to
  445.           2.10a.  However, 2.10a introduces a fast, efficient virtual
  446.           memory paradigm.  Theoretically, it allows you to edit up to 256
  447.           Megabytes of file storage -- that is a lot of files! 
  448.           Practically, it means that if you have the disk storage, you need
  449.           not worry about memory constraints again.  
  450.                Implementing virtual memory necessitated almost a complete
  451.           rewrite of Bingo.  Hence, not a lot of new functionality was
  452.           introduced in this version; I believe the total is about 17 new
  453.           functions, none of which add major functionality.  Several major
  454.           things are in the works for the future, including customizable
  455.           menus, a new window scheme, and an expanded macro language. 
  456.           Further, the regular expression subsystem is going to be
  457.           completely rewritten for the next release, much as the word
  458.           functions were for this release.
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.                              Bingo 2.10a Reference Manual
  489.                                           5
  490.  
  491.  
  492.  
  493.  
  494.           Support
  495.           -------
  496.  
  497.                As any of my registered users will tell you, I am committed
  498.           to supporting Bingo.  Without my users, where would I be? 
  499.           Anyone, registered or not, who calls or writes me will receive
  500.           prompt and (hopefully) useful help.  I particularly like to hear
  501.           of requests; anything you would like to see in Bingo, let me
  502.           know.  One of my beta-testers remarked that he felt like he had a
  503.           personal editor -- anything he wanted was added.
  504.                I am now residing in the Baltimore area.  My current address
  505.           and phone number is:
  506.  
  507.                Christopher Schanck
  508.                PO Box 279
  509.                Hanover MD 21076
  510.                (301) 730-9874
  511.  
  512.           You are welcome to call me at the above number, but while the
  513.           address will be stable for the next several years, phone numbers
  514.           do change.  Should this number become invalid for any reason,
  515.           call (215) 691-1070 (9am to 6pm, EST).  If you wish, you will be
  516.           given a number where you can currently reach me, or you can leave
  517.           your name and number, and I will return your call within 2-3
  518.           days.
  519.                PLEASE feel free to contact me.  I very much like to hear
  520.           from you!  
  521.  
  522.           CompuServe
  523.           ----------
  524.                Recently (7/91), I became a subscriber to Compuserve.  You
  525.           can contact me there as:
  526.                70541,3614
  527.           On the internet, that would be:
  528.                70541.3614@compuserve.com
  529.           This is the fastest, most reliable way to contact me.
  530.  
  531.           Getting the Latest Version
  532.           --------------------------
  533.                If you have a copy of Bingo but are not sure if it is the
  534.           latest version, the best way to find out is by calling the
  535.           Computer Connection BBS in Washington DC.  This is a very large,
  536.           well-managed BBS.  The latest version of Bingo will always be
  537.           available here, and E-Mail left for me will be answered.  The
  538.           number is (202) 547-2008.  Likewise, Bingo will always be on
  539.           Compuserve, in the IBM section.
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.                              Bingo 2.10a Reference Manual
  547.                                           6
  548.  
  549.  
  550.  
  551.  
  552.           Using this Manual
  553.           -----------------
  554.                This manual is broken into three parts.  The first is
  555.           comprised of small sections concerned with particular little
  556.           parts of Bingo, such as Installation and Invocation.  
  557.                The second part consists of sections on each major
  558.           functionality present in Bingo.  These individual sections are
  559.           not tutorial in orientation, but rather give necessary
  560.           information needed to utilize this functionality.  
  561.                The final section is a listing of all of the functions
  562.           supported by Bingo.
  563.                I suggest that the first time user first read the initial
  564.           sections for pertinent information, then go through the function
  565.           list *thoroughly*.  This will give you a clear idea of the
  566.           capabilities of Bingo.  Then, for clarification, go through the
  567.           middle sections as needed.
  568.                Finally, read the READ.ME file very carefully.  In some
  569.           cases it will have information this file doesn't contain, and it
  570.           may describe some things in greater detail as it is kept as a
  571.           running log as I make changes.
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.                              Bingo 2.10a Reference Manual
  605.                                           7
  606.  
  607.  
  608.  
  609.  
  610.                                Critical Short Sections
  611.                                -----------------------
  612.  
  613.           Installing Bingo
  614.           ----------------
  615.                There are 3 files which are of critical importance for Bingo
  616.           to run. 
  617.                BE.EXE and BE.COM are the executables.  BE.EXE is the actual
  618.           editor executable.  BE.COM is the loader file; this allows Bingo
  619.           to swap itself in and out of memory.  Both of these files MUST,
  620.           MUST, MUST reside in the same subdirectory (Got that?).  If you
  621.           dislike typing 'be' at the DOS command, you CAN rename Bingo's
  622.           executable.  Just rename both the .EXE and the .COM to be the
  623.           same filename (with different extensions), for instance, you
  624.           might shorten it to B.COM and B.EXE (programmer's, being lazy in
  625.           their typing, will no doubt do this; I did ;-)  One point to
  626.           remember, don't invoke the .EXE file directly.  As long as you
  627.           have both in the same directory, you can type 'BE' (no
  628.           extension), and the .COM file will be executed.  Or you can
  629.           execute the .COM file directly.
  630.                KEYCFG.SET is the compiled keyboard definition file.  This
  631.           needs to be in the same directory as BE.EXE/.COM, or in the
  632.           current directory.
  633.                KEYCFG.EXE is another program of importance; it is the
  634.           program used to generate a keyboard configuration.  It takes the
  635.           name of a configuration file (usually BINGO.CFG) and generates a
  636.           keyset file (usually called KEYCFG.SET)See the section titled
  637.           Configuring the Keyboard for more information.
  638.                The help file BINGO.HLP, is an additional file which must be
  639.           in the same subdirectory as BE.EXE.  When you invoke help, Bingo
  640.           will look there for the file BINGO.HLP.  The file may contain
  641.           your own description of the current key layout, or just about
  642.           anything else you would like.  Bingo comes with a default help
  643.           file.
  644.                As an example, assume the Bingo distribution files are
  645.           contained on drive A:, and you are installing Bingo on drive C:. 
  646.                First, move to drive C: and create a directory for bingo,
  647.           called \bingo using DOS's mkdir command.  Move to this
  648.           subdirectory using 'cd \bingo'.  Now copy the files from drive A:
  649.           over to the proper subdirectory by using 'copy A:*.* C:\BINGO'.
  650.                Finally, you probably want to add 'C:\BINGO' to your PATH
  651.           environment variable.
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.                              Bingo 2.10a Reference Manual
  663.                                           8
  664.  
  665.  
  666.  
  667.  
  668.           Invoking Bingo
  669.           --------------
  670.                Starting Bingo is simple.  Simply type:
  671.  
  672.                     be <filespec> <filespec> ...
  673.                     be.com <filespec> <filespec> ...
  674.  
  675.           at the DOS prompt, and you are off.  One of several things will
  676.           happen.  If each filename you gave is discreet (i.e., no
  677.           wildcards), the files named will each be loaded, one after
  678.           another.  If a filespec matches more than one file, a directory
  679.           list of matching files will pop up which will allow you to choose
  680.           a file or files.  See the section on the Directory List for
  681.           further explanation.
  682.                If no filespec is given, Bingo will ask behave as if you
  683.           issued 'be *.*'.
  684.  
  685.                You may also specify the starting line and column position
  686.           for the each loaded file.  The '/pLL:CC' switch allows you to do
  687.           this.  For example:
  688.  
  689.                be test.doc test2.doc /p10:5 /p20
  690.  
  691.           would load the file TEST.DOC and move to the 10th line, 5th
  692.           column.  TEST2.DOC would begin on the 20th line.  If you do not
  693.           give a column argument, the first column will be assumed.  
  694.  
  695.                Similarly, you can use the '-x<filename>' switch to run a
  696.           macro file on startup.  For Example:
  697.  
  698.                be test.doc test2.doc /xfun1.mac
  699.  
  700.           would load both files, then execute the macro file FUN1.MAC
  701.           inside the buffer holding TEST.DOC.
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.                              Bingo 2.10a Reference Manual
  721.                                           9
  722.  
  723.  
  724.  
  725.  
  726.           Virtual Memory & the PAGESIZE Utility
  727.           -------------------------------------
  728.                In version 2.10a, Bingo introduces a virtual memory paradigm
  729.           to allow programmers to edit more and larger files.  Virtual
  730.           memory is a simple, elegant, beautiful concept in the abstract;
  731.           the reality, on a DOS based PC, is a very hairy beasty indeed. 
  732.           Many different methods for implementing virtual memory were
  733.           examined.  The one I settled on seems a good compromise; Bingo is
  734.           still quick, and the memory/disk swapping necessary when you are
  735.           working with large files is relatively unobtrusive.  I still edit
  736.           fairly regularly on an 8088 machine, with a 65ms hard disk, and I
  737.           find Bingo plenty fast enough.  On a 386 with a fast drive (say,
  738.           an 80meg IDE drive with a 32k onboard cache), you never even
  739.           realize it is swapping.
  740.                Bingo treats file storage as a set of fixed length blocks. 
  741.           As shipped, Bingo is configured for 2048 byte-sized blocks, or
  742.           2k.  Internally, Bingo can deal with 16384 of these blocks, or
  743.           16k.  This gives a theoretical file storage limit of 16k * 2k, or
  744.           32 Megabytes.  This blocksize, or *pagesize*, is configurable
  745.           from 2k to 16k, in even increments (i.e, 2k, 4k, 6k, 8k, etc). 
  746.           The larger the pagesize, the higher the theoretical memory limit. 
  747.           For instance, a pagesize of 16k gives a theoretical memory limit
  748.           of 256 Megabytes!  So why not just set it to be 16k and be done
  749.           then, you ask?
  750.                Two reasons.  First, the larger the pagesize, the harder
  751.           Bingo works to manipulate text.  On faster machines, larger
  752.           pagesizes are fine; on a 386/25 Mhz PC, a 16k pagesize is no
  753.           problem at all.  On the other hand, a 2k pagesize is fine on
  754.           every machine out there, hence the default setting.
  755.                Second, let's be serious about this.  Seldom, if ever, will
  756.           someone really need to edit a file 250+ Megs in size.  Could
  757.           happen; that is why I coded it as I did.  But still.  Also, do
  758.           the arithmetic.  To edit a 200M file, you need roughly > 400M of
  759.           disk storage; 200M for the file itself, + 200M for the swapfile,
  760.           + some odd number of bytes for the file entries in the FAT table
  761.           (grin).  Not a lot of systems around with several hundred megs of
  762.           storage hanging about.  But we plan for the future.
  763.  
  764.                To set the pagesize, use the PAGESIZE.COM utility.  The
  765.           syntax is :
  766.                     pagesize <size> <filename>
  767.           where <size> is the size in Kilobytes (2,4,6,8,...,16) and the
  768.           filename is .EXE name to configure (i.e., BE.EXE).
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.                              Bingo 2.10a Reference Manual
  779.                                           10
  780.  
  781.  
  782.  
  783.  
  784.           Impact of Virtual Memory on Performance
  785.           ---------------------------------------
  786.                Virtual memory has had a measurable impact on Bingo's
  787.           performance in a number of areas.  Users coming from version 2.01
  788.           or earlier will appreciate this discussion of differences.  
  789.                On the downside, general editing is, in my estimation, a
  790.           touch slower.  Searches, scrolling, block operations, etc.  On
  791.           the other hand,  the only machine I can tell the difference on is
  792.           an ancient 8088; use an AT-class machine, and you can't see a
  793.           difference.  However, even on the 8088, things are by no means
  794.           slow; searches and such are still very quick.
  795.                One function in particular is much slower.  When you sort a
  796.           block, things are much, *much* slower in this version.  This is
  797.           not so much a consequence of the virtual memory per se, but of
  798.           the new memory structure.  In version 2.01 and earlier, sorting
  799.           was done with a recursive algorithm (N log N bound), and swapping
  800.           lines meant swapping pointers only.  In version 2.10a, a stack-
  801.           based sort is not acceptable, because with a large file you could
  802.           corrupt the stack.  So the excellent CombSort algorithm (April
  803.           1991 BYTE) was used instead.  This algorithm approximates N log N
  804.           time, but is ultimately slower.  The real speed killer, however,
  805.           is that I can no longer simply swap pointers.  Instead, I have to
  806.           physically move the lines themselves around.  This is slow,
  807.           pushing the sort time way, way up.  But I did not want to
  808.           eliminate sorting entirely.
  809.                On the upside, obviously, you can edit humongous files with
  810.           ease, and a virtually unlimited number of files.  This is an
  811.           obvious improvement.
  812.                The other highly visible improvement is in File IO.  File
  813.           reading and writing has been speeded up by something approaching
  814.           a factor of 4.  This means that Bingo's swapping in and out of
  815.           memory has been improved as well. 
  816.                A large number of small functions were also improved, such
  817.           as adding the 'pick_file' function and string-editing recall.
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.                              Bingo 2.10a Reference Manual
  837.                                           11
  838.  
  839.  
  840.  
  841.  
  842.           Bingo and Larger Screen Displays
  843.           --------------------------------
  844.                EGA, VGA, and MCGA video display cards support displays
  845.           larger than the standard 25 rows by 80 columns.  Bingo does
  846.           support editing on these screen sizes.  Bingo can be set to
  847.           handle screen displays in one of three ways:
  848.                -    Bingo can be set to detect the current screen type and
  849.                     dimensions, and do retrace checking.
  850.                -    Bingo can be set to detect the current screen type and
  851.                     size, but do no retrace checking.
  852.                -    Bingo can be set to switch to 43/50 line mode if it is
  853.                     supported.  No retrace checking will be performed.
  854.           As shipped, Bingo chooses the middle of these three courses.  The
  855.           retrace checking is only done if you are using a color display
  856.           with a 25x80 configuration.
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  
  865.  
  866.  
  867.  
  868.  
  869.  
  870.  
  871.  
  872.  
  873.  
  874.  
  875.  
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.                              Bingo 2.10a Reference Manual
  895.                                           12
  896.  
  897.  
  898.  
  899.  
  900.           Bingo's Menu System
  901.           -------------------
  902.                Bingo implements a comprehensive menu structure to aid you
  903.           in utilizing Bingo's functions.  Many people, myself included, do
  904.           not necessarily wish to spend the time to assign every function
  905.           we need to a keyboard equivalent.  This requires a large time
  906.           investment before you can begin using the editor.  On the other
  907.           hand, it is very irritating when you need a particular function
  908.           and cannot use it because you did not have the foresight to
  909.           assigned it to a key combination.  
  910.                Bingo's menu system was designed to handle just this
  911.           situation.  By assigning the 'main_menu' function to a keystroke,
  912.           you effectively have access to *every* function Bingo has. 
  913.           First, greater than 75% of Bingo's functions are directly
  914.           accessible from the menus, grouped in logical sets, following a
  915.           logical hierarchy.  The remaining functions can be accessed by
  916.           selecting the 'eXtras' sub-menu, then the 'Pick & exec' function. 
  917.           This function then allows you to choose from a list of *all*
  918.           supported functions.
  919.                I have found that for most people, it pays to assign your
  920.           most commonly needed functions to keystrokes, and then rely on
  921.           the menu system for the ones which are used to a lesser degree. 
  922.           The logical structure of the menus allows for easy access to less
  923.           frequently needed functions.
  924.                The menus themselves work quite easily.  A list of
  925.           possibilities is presented.  A menubar can be moved up and down
  926.           to make your choice; pressing Return selects the choice.  In
  927.           addition, each choice has a highlighted character; pressing this
  928.           character will automatically select the choice.
  929.                In some cases you may be presented with a child menu.  Here
  930.           again you may make a choice as before, with one additional bit of
  931.           functionality.  If you are in a child menu, pressing the PgUp or
  932.           PgDn keys will move you to the previous or next sibling menu,
  933.           respectively.  
  934.                The Print menu, as well as all of the configuration menus,
  935.           is a multiple menu.  This means that after you have made a
  936.           choice, the action will be executed and you will be returned to
  937.           the menu at the same spot.  I have found that when printing and
  938.           configuring, people usually want to do more than one task.  Menus
  939.           which are multiple will have an asterisk ('*') printed at the
  940.           bottom of the menu border.
  941.                The Escape key always closes the current child menu.  If you
  942.           are at the top menu, it quits the menu system entirely.  To see
  943.           how your mouse, if you have one, interacts with the menus, see
  944.           the section concerning Bingo and a mouse.
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.                              Bingo 2.10a Reference Manual
  953.                                           13
  954.  
  955.  
  956.  
  957.  
  958.           Bingo's Dialogue Boxes
  959.           ----------------------
  960.                Throughout Bingo, you will encounter many dialogue boxes. 
  961.           There are four main types.  They are:
  962.  
  963.                String Entry Boxes:
  964.  
  965.                These are the boxes which ask you for string input.  The
  966.           easiest example is when Bingo asks you for a filename.  These
  967.           boxes allow you to enter string input in a flexible manner.  A
  968.           wide variety of keystrokes are available to aid in this endeavor;
  969.           they are:
  970.  
  971.                          ^F/CursRt      One Character Forward
  972.                          ^B/CursLt      One Character Backward
  973.                          ^A/Home        Beginning of Line
  974.                          ^E/End         End of Line
  975.                          ^K/CtrlEnd     Delete to Eol
  976.                          CtrlHome       Delete to Bol
  977.                          ^Y             Delete Line
  978.                          Tab            Insert from Paste Buffer 
  979.                          Insert         Toggle insert Mode
  980.                          Alt-A          Invoke the ASCII Table
  981.                          Up Arrow       Pops up a list of the previous 15
  982.                                         strings entered.
  983.  
  984.                Pressing <Escape> will abort out of the string entry
  985.           operation.
  986.  
  987.                Yes/No Boxes:
  988.  
  989.                These are the boxes which require a yes or no answer to a
  990.           question.  An example of this is when you 'quit' a file and the
  991.           file has been modified.  Bingo will ask you if you wish to save
  992.           the file.
  993.                Each time you enter a Yes/No box, one of the two options
  994.           will be will be highlighted.  This is the default option which
  995.           will be selected if you press <Return>.  By using the Left and
  996.           Right Arrow keys, you can change the current selection. 
  997.           Alternatively, you can press either the 'y' key (any case) for a
  998.           yes answer, or the 'n' key (any case) for a no answer.
  999.                Pressing <Escape> will abort the operation.
  1000.  
  1001.                Non-Editable Display Boxes:
  1002.  
  1003.                The easiest example of this type of box is the Help box, or
  1004.           the Info box.  This type of box simply displays a number of lines
  1005.           within a box.  By using the Up and Down arrows (also the space
  1006.           bar) you may scroll by lines, and by using the Page Up and Page
  1007.           Down keys you may scroll by pages.
  1008.                Any other keystroke will exit the box.
  1009.  
  1010.                              Bingo 2.10a Reference Manual
  1011.                                           14
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.                List-Picking Boxes:
  1019.  
  1020.                The best example of this type of dialogue box occurs when
  1021.           the 'directory list picker' pops up.  This type of box is very
  1022.           similar to the Non-Editable box discussed above, but the idea
  1023.           here is not merely to display information but to facilitate
  1024.           making a choice.  There will be a menubar highlighted, showing
  1025.           the current selection.  You may move this bar up and down using
  1026.           the arrow and page keys.  Pressing <Return> will selection this
  1027.           option.
  1028.                Additionally, the initial character of each selection may be
  1029.           highlighted.  If so, pressing the corresponding character will
  1030.           automatically select this option.
  1031.                Finally, even if the leading characters of each selection
  1032.           are not so highlighted, you may "step" through the selections by
  1033.           pressing letter keys.  The menubar will move to the next
  1034.           selection which starts with the letter pressed.  If necessary,
  1035.           the menubar will wrap to the top of the list (Bingo will beep in
  1036.           this case).  In the case of the directory picker, the leading '\'
  1037.           characters of directory entries will be ignored.
  1038.                As is the custom, the <Escape> key will abort the operation.
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066.  
  1067.  
  1068.                              Bingo 2.10a Reference Manual
  1069.                                           15
  1070.  
  1071.  
  1072.  
  1073.  
  1074.           Directory Lister
  1075.           ----------------
  1076.                One of the extremely useful features of Bingo is its
  1077.           directory lister.  Often, Bingo will ask for a filename.  If the
  1078.           name you give matches more than one file, in the case of
  1079.           wildcards, for instance, the lister will appear with a list of
  1080.           matches and all subdirectories in the current directory.  There
  1081.           are several features embedded in this lister to assist you in
  1082.           choosing a file. 
  1083.                First, all subdirectory entries in the current directory
  1084.           will are shown at the top, with a '\' character preceding them. 
  1085.           Selecting any of these will cause the lister to change to that
  1086.           directory.
  1087.                Second, pressing a letter causes the Lister to move to the
  1088.           next filename whose first character matches the letter pressed. 
  1089.           A beep will sound if the search wraps around to the beginning.
  1090.                The list is sorted alphabetically by name, but subdirectory
  1091.           entries come first.  The last entry is always the New
  1092.           Specification entry, which allows you to type in a new
  1093.           specification, perhaps another drive if it is necessary. 
  1094.                You have 2 choices in the directory lister other than
  1095.           choosing a file.  The second-last option in the list, "Load All
  1096.           Matching Files", will, as you might guess, load all the files
  1097.           shown in the list.  It will not attempt to load subdirectories. 
  1098.           The last option, "New File Spec", allows you to re-choose the
  1099.           directory specification.
  1100.  
  1101.           Bingo and File Names
  1102.           --------------------
  1103.                Many times during normal operation, Bingo will ask you for a
  1104.           filename.  Bingo handles filenames slightly differently than
  1105.           plain vanilla DOS.  In particular, let's examine the difference
  1106.           between
  1107.  
  1108.                'thisfile'          &         'thisfile.'
  1109.  
  1110.                The first does not contain a period.  In this case, Bingo
  1111.           will do two things.  First, it will, for each defined default
  1112.           extension, check if the file with that extension exists.  If it
  1113.           does, it will use that filename.  If none of the default
  1114.           extensions lead to a valid, existing file, Bingo automatically
  1115.           appends '.*' to the filename, and presents you with a directory
  1116.           list picker.  
  1117.                The second contains the trailing period, and so will be used
  1118.           as is.  So, in order to specify a file without an extension, you
  1119.           must add the trailing period.
  1120.                Why is this done?  Simple laziness.  This allows me to ask
  1121.           for file 'test' and be presented with all forms of 'test.*'.  I
  1122.           can then hit return on the file which interests me.  
  1123.                Additionally, Bingo accepts either '/' or '\' characters as
  1124.           file delimiters.  This will make life a little easier on those of
  1125.  
  1126.                              Bingo 2.10a Reference Manual
  1127.                                           16
  1128.  
  1129.  
  1130.  
  1131.  
  1132.           us who use UNIX systems regularly.  Finally, version 2.10a allows
  1133.           the use of the '..' and '.' directory primitives.
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140.  
  1141.  
  1142.  
  1143.  
  1144.  
  1145.  
  1146.  
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.                              Bingo 2.10a Reference Manual
  1185.                                           17
  1186.  
  1187.  
  1188.  
  1189.  
  1190.           The Status Line
  1191.           ---------------
  1192.                On the bottom line of each window in Bingo's display is the
  1193.           status line.  This line communicates several valuable pieces of
  1194.           information.  On the left side of the line, the current line and
  1195.           column are displayed.  Next are a series of flags:
  1196.                       a     Autoindent
  1197.                       c     C mode 
  1198.                       i     Insert mode
  1199.                       m     Matching Mode
  1200.                       r     Recording Macro
  1201.                       t     Smart Tabs
  1202.                       w     Wordwrap
  1203.                       z     Zoom mode
  1204.           For each of these flags, if the letter is capitalized, it
  1205.           indicates that the toggle is on, while a lowercase character
  1206.           indicates the option is toggled off.
  1207.                Next you will see something looking like [x/y] where 'y' is
  1208.           the number of files in the ring, and 'x' is the position of the
  1209.           current file in the ring.
  1210.                Finally, the full pathname comes.  If it is prefaced with an
  1211.           asterisk '*', it means the file has been modified.
  1212.                At the end of one of the on screen status lines, you will
  1213.           see either one or three little pyramids.  If there is a single
  1214.           pyramid, that means it is not the active window.  If there are
  1215.           three pyramids, they tell you which is the active window.  If the
  1216.           three pyramids are pointing up, the full-width window above the
  1217.           status line is the current window.  If the three pyramids point
  1218.           to the left, this means that of the two windows above the status
  1219.           line, the one on the left is the active window.  If the three
  1220.           pyramids point to the right, the window on the right is active.
  1221.                The same rules concerning the direction of the pyramids hold
  1222.           for inactive status lines, except that only one pyramid will be
  1223.           present.
  1224.                If this all sounds complicated, don't worry.  Open a few
  1225.           windows and move among them; it will become much clearer.
  1226.                Finally, on the right end of the current status line, a 'T'
  1227.           or 'F' character will be shown.  This represent whether the last
  1228.           operation Bingo executed returned a value of True or False; i.e.,
  1229.           whether it worked.  This does not have a major impact at the
  1230.           moment, but in future versions it will.
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.                              Bingo 2.10a Reference Manual
  1243.                                           18
  1244.  
  1245.  
  1246.  
  1247.  
  1248.           KEYCFG: The Keyboard Configuration Program
  1249.           ------------------------------------------
  1250.                KEYCFG is the program used to create a keyboard
  1251.           configuration which the Bingo executable can utilize.  The
  1252.           supplied configuration files (BINGO.CFG, EMACS.CFG, possibly
  1253.           others) give a good example of how to set up the file, so this
  1254.           section will simply go over the high points again.
  1255.                KEYCFG is invoked as follows:
  1256.  
  1257.                     KEYCFG <configuration name> <keyset filename>
  1258.  
  1259.           <configuration name> is the name of the text configuration source
  1260.           file you wish KEYCFG to read, and <keyset filename> is the name
  1261.           you wish KEYCFG to write the compiled keyboard setup to.  The
  1262.           default keyset file which Bingo looks for on startup is
  1263.           KEYCFG.SET.  Bingo will look first in the current directory, then
  1264.           in Bingo's own home directory.  Alternate keyset files can be
  1265.           loaded from within Bingo using the 'key_set_load' function.
  1266.  
  1267.           Key Names
  1268.           ---------
  1269.           f1-f10    are the function keys
  1270.           !f1-!f10  are the shifted function keys
  1271.           @f1-@f10  are the control function keys
  1272.           #f1-#f10  are the alt function keys
  1273.           @<key>    is the control-<key> combination
  1274.           #<key>    is the alt-<key> combination
  1275.  
  1276.           These are named keys:
  1277.  
  1278.           backspace                          down_arrow
  1279.           backtab                            shift_insert
  1280.           tab                                shift_delete
  1281.           escape                             shift_home
  1282.           ctrl_backspace                     shift_end
  1283.           return                             shift_pgup
  1284.           ctrl_return                        shift_pgdn
  1285.           alt_return                         shift_right_arrow
  1286.           ctrl_tab                           shift_left_arrow
  1287.           alt_tab                            shift_up_arrow
  1288.           alt_equal                          shift_down_arrow
  1289.           alt_minus                          ctrl_insert
  1290.           insert                             ctrl_delete
  1291.           delete                             ctrl_home
  1292.           home                               ctrl_end
  1293.           end                                ctrl_pgup
  1294.           pgup                               ctrl_pgdn
  1295.           pgdn                               ctrl_right_arrow
  1296.           right_arrow                        ctrl_left_arrow
  1297.           left_arrow                         ctrl_up_arrow
  1298.           up_arrow                           ctrl_down_arrow
  1299.  
  1300.                              Bingo 2.10a Reference Manual
  1301.                                           19
  1302.  
  1303.  
  1304.  
  1305.  
  1306.           keypad_plus
  1307.           keypad_minus
  1308.           keypad_divide
  1309.           keypad_aster
  1310.           keypad_return
  1311.           ctrl_keypad_plus
  1312.           ctrl_keypad_minus
  1313.           ctrl_keypad_divide
  1314.           ctrl_keypad_aster
  1315.           ctrl_keypad_return
  1316.           alt_keypad_plus
  1317.           alt_keypad_minus                   Note:  The keynames with
  1318.           alt_keypad_divide                  'grey' in them, as well as
  1319.           alt_keypad_aster                   F11, F12, and several others,
  1320.           alt_keypad_return                  denote keys which are
  1321.           grey_up_arrow                      available only if you have an
  1322.           grey_down_arrow                    extended keyboard, and you
  1323.           grey_left_arrow                    have the 'Use Extended
  1324.           grey_right_arrow                   Keyboard Bios' option turned
  1325.           grey_delete                        on.
  1326.           grey_end
  1327.           grey_home
  1328.           grey_insert
  1329.           grey_pgup
  1330.           grey_pgdn
  1331.           ctrl_grey_up_arrow
  1332.           ctrl_grey_down_arrow
  1333.           ctrl_grey_left_arrow
  1334.           ctrl_grey_right_arrow
  1335.           ctrl_grey_delete
  1336.           ctrl_grey_end
  1337.           ctrl_grey_home
  1338.           ctrl_grey_insert
  1339.           ctrl_grey_pgup
  1340.           ctrl_grey_pgdn
  1341.           alt_grey_up_arrow
  1342.           alt_grey_down_arrow
  1343.           alt_grey_left_arrow
  1344.           alt_grey_right_arrow
  1345.           alt_grey_delete
  1346.           alt_grey_end
  1347.           alt_grey_home
  1348.           alt_grey_insert
  1349.           alt_grey_pgup
  1350.           alt_grey_pgdn
  1351.  
  1352.  
  1353.  
  1354.  
  1355.  
  1356.  
  1357.  
  1358.                              Bingo 2.10a Reference Manual
  1359.                                           20
  1360.  
  1361.  
  1362.  
  1363.  
  1364.  
  1365.                The configuration file itself consists of lines of the
  1366.           format:
  1367.  
  1368.                <key specifier> <function identifier>
  1369.           or
  1370.                <key specifier> macro <macro list>
  1371.           or
  1372.                <key specifier> <character>
  1373.           or 
  1374.                ; <comment text>
  1375.  
  1376.           A line starting with a space is a continuation of the previous
  1377.           line.
  1378.  
  1379.                <key specifier> is either a simple <key name>, or two key
  1380.           names strung together as <key name>+<key name>.  For instance,
  1381.           for you Wordstar people, control-k q would be entered as
  1382.  
  1383.                @k+q
  1384.  
  1385.           Note: in this case, the Bingo will recognize both the sequence
  1386.           @k+q and @k+Q as the same thing -- case is not significant.
  1387.  
  1388.                The <macro list> is a list of 0 or more function
  1389.           descriptors, as listed in the Function List section, and 0 or
  1390.           more literal occurrences, and 0 or more named keys, in any order. 
  1391.           The literals must be enclosed in single quotes.  The literals
  1392.           will occur in the macro exactly as if they had been typed.  For
  1393.           instance, the line
  1394.  
  1395.                f1    macro 'Chris' return
  1396.  
  1397.           would define the f1 key as my name followed by a return.
  1398.  
  1399.                The <character> is any printable ASCII character, entered
  1400.           without quotes.  For instance, 
  1401.  
  1402.                <    ,
  1403.  
  1404.           would redefined the less-than symbol to be the comma.  This
  1405.           translation will occur during general editing, as well as in the
  1406.           search and replace string-entry boxes.  Everywhere else it will
  1407.           be ignored.
  1408.  
  1409.  
  1410.  
  1411.  
  1412.  
  1413.  
  1414.  
  1415.  
  1416.                              Bingo 2.10a Reference Manual
  1417.                                           21
  1418.  
  1419.  
  1420.  
  1421.  
  1422.                The following macro would define the Alt-C key to save all
  1423.           current modified files, execute the make command while swapping
  1424.           Bingo out to disk, saving the errors in the ERRS file, then load
  1425.           the ERRS file.
  1426.  
  1427.                #c        macro save_all swap_execute 'make > errs' return
  1428.                          return load_file 'errs.' return
  1429.  
  1430.                A more interesting variant of this is the one I used prior
  1431.           to installing the auto-error processing:
  1432.  
  1433.                #c        macro modify_save_all swap_execute 'make > errs'
  1434.                          return return window_bottom load_file 'errs.'
  1435.                          return
  1436.  
  1437.           This version will attempt to put the errors file in the bottom-
  1438.           most window, and it will initially only save those files as have
  1439.           been modified.
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.  
  1458.  
  1459.  
  1460.  
  1461.  
  1462.  
  1463.  
  1464.  
  1465.  
  1466.  
  1467.  
  1468.  
  1469.  
  1470.  
  1471.  
  1472.  
  1473.  
  1474.                              Bingo 2.10a Reference Manual
  1475.                                           22
  1476.  
  1477.  
  1478.  
  1479.  
  1480.                After adding  the auto-error processing, I added a more
  1481.           complex version of this macro:
  1482.  
  1483.                #c        macro modify_save_all swap_execute 'make > errs'
  1484.                          return return window_one window_split load_file
  1485.                          'errs.' return window_previous window_resize
  1486.                          down_arrow down_arrow down_arrow down_arrow
  1487.                          down_arrow down_arrow return setup_err_parse
  1488.                          'errs.' return return next_error
  1489.  
  1490.           This version saves all modified files, executes MAKE as before,
  1491.           and returns.  When it returns, it makes sure there is but one
  1492.           window, splits the current window, and loads in the ERRS file. 
  1493.           It then resizes it so the bottom window is smaller, resets the
  1494.           error parsing to the ERRS file, then searches for the next
  1495.           (first) error.
  1496.                This last version is very sweet to use if you have a
  1497.           compiler which generates agreeable error files.  Bingo will work
  1498.           with most compilers I have come across, including the Borland and
  1499.           Microsoft compilers/assemblers.  With the Microsoft tools, you
  1500.           may have to tweak the compile flags a bit to get a usable format.
  1501.  
  1502.           'open_end' Identifier
  1503.           ---------------------
  1504.                KEYCFG allows the use of the 'open_end' identifier in macros
  1505.           to force Bingo to fetch string input from the keyboard.  For
  1506.           example:
  1507.  
  1508.                f1   macro search open_end 'i' return
  1509.  
  1510.           will execute the search function, wait for the user to input the
  1511.           target string, then input 'i' for the search modifier and do the
  1512.           search.
  1513.                'open_end' is effective only for string input --- single key
  1514.           input situations will not respond to it.
  1515.  
  1516.           'cur_file' Identifier
  1517.           ---------------------
  1518.                KEYCFG also allows the use of the 'cur_file' identifier in
  1519.           macros to expand into the current file's name (less path) in
  1520.           string input.  For example:
  1521.  
  1522.                f1   macro load_file cur_file return
  1523.  
  1524.           will force the reload of the current file, providing it is
  1525.           located in the current directory.  NOTE:  There was a bug related
  1526.           to 'cur_file' in version 2.01; basically, if it referenced a
  1527.           filename longer than 11 characters (FOOBARED.TXT), bango, you
  1528.           were sunk.  
  1529.  
  1530.  
  1531.  
  1532.                              Bingo 2.10a Reference Manual
  1533.                                           23
  1534.  
  1535.  
  1536.  
  1537.  
  1538.           KEYCFG Command Line Options
  1539.           ----------------------------
  1540.                KEYCFG recognizes three command line options.  One is a
  1541.           shortcut:
  1542.  
  1543.                keycfg !
  1544.  
  1545.           tells KEYCFG to assume the name of the configuration file is
  1546.           BINGO.CFG, and that the keyset file is KEYCFG.SET.  I put this in
  1547.           primarily for my own use, as I run KEYCFG often during
  1548.           development.
  1549.  
  1550.                'KEYCFG names' will provide an alphabetical list of all of
  1551.           the function names which are currently recognized.  Useful to
  1552.           have.
  1553.  
  1554.                Likewise 'KEYCFG keys' will list all recognized keynames. 
  1555.           Also useful to have.
  1556.  
  1557.  
  1558.  
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.  
  1589.  
  1590.                              Bingo 2.10a Reference Manual
  1591.                                           24
  1592.  
  1593.  
  1594.  
  1595.  
  1596.           Bingo & The Mouse
  1597.           -----------------
  1598.                Bingo has the capacity to make extensive use of a Microsoft
  1599.           (trademark, copyright, and kudos to Microsoft) compatible mouse,
  1600.           should you have one installed.  In order for the mouse to work,
  1601.           three things must be true. 
  1602.  
  1603.                1) It must be connected to the computer properly.  See your
  1604.           mouse manual for instructions.
  1605.                2) You must have your mouse driver installed properly. 
  1606.           Again, see your mouse manual for instructions on how to
  1607.           accomplish this.
  1608.                3) You must have the 'Use Mouse' option turned on, found in
  1609.           the General configuration menu. Bingo is shipped with mouse use
  1610.           turned on.
  1611.  
  1612.                Bingo is designed to allow users of three button mice to
  1613.           make full use of all three buttons (I have a three button mouse). 
  1614.           However, users with two button mice will only lose a little
  1615.           functionality when it comes to programming the mouse, and no
  1616.           functionality at all when it comes to dealing with the menus and
  1617.           dialogue boxes.
  1618.                It is generally easy to tell if the mouse is working; the
  1619.           status line will have four additional "buttons", each consisting
  1620.           of three arrows enclosed in square braces.  Also, to conserve
  1621.           space, the filename will be shown without its full path.
  1622.  
  1623.           The Mouse Cursor
  1624.           ----------------
  1625.                The mouse cursor will appear on your screen as a solid, non-
  1626.           blinking block, which changes color depending on the underlying
  1627.           color.  It should be possible to move the cursor over the entire
  1628.           screen.  If the mouse cursor is present, it means that a response
  1629.           with the mouse is possible.  If it is not visible, this means
  1630.           that at this point, no mouse response makes sense.
  1631.  
  1632.           The Mouse at the General Editing Level
  1633.           --------------------------------------
  1634.                At the general editing screen, Bingo has 20 programmable
  1635.           mouse events.  The programmable events are handled exactly as key
  1636.           assignments are handled: through KEYCFG.  These are the mouse
  1637.           names:
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  
  1648.                              Bingo 2.10a Reference Manual
  1649.                                           25
  1650.  
  1651.  
  1652.  
  1653.  
  1654.                                Mouse Event Identifiers
  1655.  
  1656.                Three_buttons                 Left_right_buttons
  1657.                Left_middle_buttons           Multiple_left_button
  1658.                Single_left_button            Right_middle_buttons
  1659.                Multiple_right_button         Single_right_button
  1660.                Multiple_middle_button        Single_middle_button
  1661.  
  1662.                Single_pyramids               Multiple_pyramids
  1663.                Single_up_arrow               Single_down_arrow
  1664.                Single_left_arrow             Single_right_arrow
  1665.                Multiple_up_arrow             Multiple_down_arrow
  1666.                Multiple_left_arrow           Multiple_right_arrow
  1667.  
  1668.                The first ten are concerned simply with what happens when
  1669.           you press the corresponding button sequence.  Note that users of
  1670.           two-button devices will only be able to utilize five of these,
  1671.           those dealing with the left and right buttons.
  1672.                The second ten refer to the 5 "hot spots" on the active
  1673.           status line.  There are two for each button, one for a single
  1674.           click and one for a double click.
  1675.  
  1676.                Now that you know of these event names, what can you do with
  1677.           them?  Well, you can assign them anything you could assign a key. 
  1678.           In addition, two special functions are provided to help deal with
  1679.           the mouse:
  1680.  
  1681.                snap_to_mouse_xy:
  1682.                     this function moves the cursor to the current mouse
  1683.                     position.  If necessary, it will change the active
  1684.                     window.
  1685.  
  1686.                mouse_scroll:
  1687.                     this function is kind of an expanded snap_to_mouse_xy. 
  1688.                     First, it moves the cursor to the mouse position. 
  1689.                     Then, as long as a mouse button is held down, the
  1690.                     screen will scroll in the following manner:
  1691.                          1) If you are in the upper 1/8 of the screen you
  1692.                          will scroll up.
  1693.                          2) If you are in the next 1/8 of the screen, the
  1694.                          screen will scroll up, but more slowly.
  1695.                          3) If you are in the lower 1/8 of the screen you
  1696.                          will scroll down.
  1697.                          4) If you are in the next lower 1/8 of the screen,
  1698.                          the screen will scroll down, but more slowly.
  1699.                     If you are elsewhere on the screen, you simply move the
  1700.                     cursor about.  This makes 'click & drag' operations
  1701.                     possible.
  1702.  
  1703.  
  1704.  
  1705.  
  1706.                              Bingo 2.10a Reference Manual
  1707.                                           26
  1708.  
  1709.  
  1710.  
  1711.  
  1712.           Combining these with other functions, quite powerful mouse events
  1713.           can be programmed.  For example:
  1714.  
  1715.           Single_left_button       snap_to_mouse_xy
  1716.           Single_right_button      macro snap_to_mouse_xy point_mark
  1717.           Multiple_left_button     macro snap_to_mouse_xy linemark
  1718.                                         mouse_scroll linemark
  1719.  
  1720.           The first simply moves the cursor, while the second moves the
  1721.           cursor and drops a point mark.  The third lets you scroll about
  1722.           the file, delineating an area to be marked.
  1723.  
  1724.                The ten "hot spots" can also be programmed as if they were
  1725.           keys.
  1726.             
  1727.           Single_down_arrow        cursor_down
  1728.           Double_down_arrow        down_page
  1729.  
  1730.           Here, this has defined the down arrow button to respond with a
  1731.           cursor_down if a single click occurs on it, or a down_page if a
  1732.           double click occurs on it.  
  1733.                These "buttons" work a little differently than you might
  1734.           expect -- as long as you hold the mouse button down, the function
  1735.           will repetitively execute.  So, if you double click on the down
  1736.           arrow "button" and hold the second click down, you will see the
  1737.           file whiz by at a truly astonishing speed.  The speed with which
  1738.           the functions are repetitively executed can be governed using the
  1739.           'conf_mdelay' function.
  1740.                These 20 events give you the user an unparalleled degree of
  1741.           control over how the mouse responds.
  1742.  
  1743.           The Mouse and The Menus
  1744.           -----------------------
  1745.                The mouse would not be very useful if it was not well
  1746.           integrated into the menu system.  Great pains have been taken to
  1747.           make mouse use easy and intuitive with respect to the menu
  1748.           system.  
  1749.                It is very simple.  The left mouse button selects something,
  1750.           and the right mouse button closes the current menu.  However,
  1751.           there are a few refinements.
  1752.                If the item you select with a single left click is in the
  1753.           rightmost menu, the effect is the same as if you had moved to
  1754.           that selection and hit <return>.  If the item is not the
  1755.           rightmost menu, say the it is in the Main menu and you currently
  1756.           have the Block menu open, then you will simply be moved to the
  1757.           selection, with the other menus closed for you.  However, no
  1758.           equivalent <return> will be executed. 
  1759.                If, however, you use a double left click, the selection will
  1760.           be executed regardless of where it was on the menu hierarchy. 
  1761.           Any extra open menus will be closed to bring you to the selected
  1762.           level.
  1763.  
  1764.                              Bingo 2.10a Reference Manual
  1765.                                           27
  1766.  
  1767.  
  1768.  
  1769.  
  1770.                Likewise, a single right click will close the current menu. 
  1771.           However, a double click will close *all* open menus.
  1772.                Note that this gives you some capabilities which are not
  1773.           available from the keyboard.
  1774.                If the above sounds complicated, don't worry.  In practice,
  1775.           it is very easy.  I would suggest you restrict yourself to single
  1776.           clicks when you begin, then move to double clicks when you are
  1777.           sure of what a single click would do.  You will very quickly find
  1778.           that the menus are effortlessly intertwined with the mouse.
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.  
  1790.  
  1791.  
  1792.  
  1793.  
  1794.  
  1795.  
  1796.  
  1797.  
  1798.  
  1799.  
  1800.  
  1801.  
  1802.  
  1803.  
  1804.  
  1805.  
  1806.  
  1807.  
  1808.  
  1809.  
  1810.  
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.                              Bingo 2.10a Reference Manual
  1823.                                           28
  1824.  
  1825.  
  1826.  
  1827.  
  1828.           The Mouse & Dialogue Boxes
  1829.           --------------------------
  1830.                Throughout Bingo, you will encounter many dialogue boxes. 
  1831.           There are four main types, and all support mouse use where
  1832.           appropriate. They are:
  1833.  
  1834.                String Entry Boxes:
  1835.  
  1836.                These are the boxes which ask you for string input.  The
  1837.           easiest example is when Bingo asks you for a filename.  There are
  1838.           only a few mouse options in these boxes; most of the time you
  1839.           must enter text from the keyboard.
  1840.                However, there are three supported button events.  A single
  1841.           left click has the same effect as a <return>; it accepts the
  1842.           current string.  A double left click wipes out the string; it in
  1843.           effect is a Control-Y equivalent.  Finally, any right button
  1844.           click is the equivalent of an <Escape> key.
  1845.  
  1846.                Yes/No Boxes:
  1847.  
  1848.                These are the boxes which require a yes or no answer to a
  1849.           question.  The easiest example of this is in the configuration
  1850.           options, where you are asked if you wish to toggle the option. 
  1851.           By placing the mouse cursor over the [Yes] selection and pressing
  1852.           the left mouse button, you answer in the affirmative.  Likewise,
  1853.           placing the mouse cursor over the [No] selection and pressing the
  1854.           left button answers in the negative.  
  1855.                As usual, pressing the right mouse button is equivalent to
  1856.           the <Escape> key.
  1857.  
  1858.                Non-Editable Display Boxes:
  1859.  
  1860.                The easiest example of this type of box is the Help box, or
  1861.           the Info box.  If there are more lines than fit within the box,
  1862.           up and down arrow boxes will appear in the upper and lower right
  1863.           hand corners of the box.  By moving the mouse cursor to the
  1864.           corresponding box and holding a mouse button down, the display
  1865.           will scroll in the corresponding direction.
  1866.                As expected, the right button exits.
  1867.  
  1868.                List-Picking Boxes:
  1869.  
  1870.                The best example of this type of dialogue box occurs when
  1871.           the 'directory list picker' pops up.  Here, as in the Non-
  1872.           Editable Display Boxes, up and down arrow boxes will appear if
  1873.           necessary.  Furthermore, moving the mouse cursor to a particular
  1874.           selection and pressing a single left key will move the menubar to
  1875.           that selection.
  1876.                Moving the mouse cursor to a particular selection and double
  1877.           left clicking will select that particular selection as if you had
  1878.           moved the menubar there and typed <return>.
  1879.  
  1880.                              Bingo 2.10a Reference Manual
  1881.                                           29
  1882.  
  1883.  
  1884.  
  1885.  
  1886.                As always, the right button is the equivalent of typing
  1887.           <Escape>.
  1888.  
  1889.           The Mouse and The ASCII Table
  1890.           -----------------------------
  1891.                The mouse is also tightly integrated with the ASCII table
  1892.           function, 'ascii_table'.  Here, single left clicking on a
  1893.           character moves the cursor to it (updating the display).  Double
  1894.           left clicking selects the character and adds it to the string.
  1895.                Single left clicking on the [Bspace] bar is equivalent to
  1896.           typing <backspace>; it removes one character from the string.  A
  1897.           double left click on this spot zeroes the string entirely.
  1898.                As always, clicking the right button is the equivalent of
  1899.           typing <Escape>.
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  
  1919.  
  1920.  
  1921.  
  1922.  
  1923.  
  1924.  
  1925.  
  1926.  
  1927.  
  1928.  
  1929.  
  1930.  
  1931.  
  1932.  
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938.                              Bingo 2.10a Reference Manual
  1939.                                           30
  1940.  
  1941.  
  1942.  
  1943.  
  1944.                                     Basic Editing
  1945.                                     -------------
  1946.  
  1947.                Basic editing concerns deletion and insertion of characters. 
  1948.           Bingo provides a number of ways to delete text without recourse
  1949.           to the block operation.  Five of these operations push deleted
  1950.           text onto the unkill stack -- 'del_eol', 'del_line', 'del_bol',
  1951.           'del_word_lt', and 'del_word_rt'.   
  1952.  
  1953.           The Destructive Backspace
  1954.           -------------------------
  1955.                Bingo supports three backspace deletion modes.  The first is
  1956.           the old favorite, the simple one character destructive backspace. 
  1957.                The second mode destructively deletes back to the previous
  1958.           tab stop, provided there are only spaces in the way.  If there
  1959.           are non-space characters in the way, it functions as in mode 1.
  1960.                The final mode deletes all the way to the left margin
  1961.           (column 1), provided it consists only of spaces.  Again, if there
  1962.           are non-space characters, it functions as mode 2.
  1963.  
  1964.           Delete EOL vs. Delete Line vs. Delete BOL
  1965.           -----------------------------------------
  1966.                The 'del_eol' function deletes the remainder of the line
  1967.           from the cursor position.  If you are on the end of a line, it
  1968.           brings the next line up to the current position.
  1969.                The 'del_line' simple deletes the entire current line, no
  1970.           questions asked.  
  1971.                The 'del_bol' deletes from the current position back to the
  1972.           beginning of the line.  If you are at the begging of a line,
  1973.           nothing happens.
  1974.                In all three cases, the deleted text is pushed onto the undo
  1975.           stack.
  1976.  
  1977.           Deleting Words
  1978.           --------------
  1979.                The 'del_word_lt' & 'del_word_rt' functions delete to the
  1980.           start of the next word, left or right, respectively.  What is a
  1981.           word?  This is up to you.  You can configure the string
  1982.           describing what delimits a word via the 'conf_word' function. 
  1983.           The deleted text is pushed onto the unkill stack;
  1984.  
  1985.  
  1986.  
  1987.  
  1988.  
  1989.  
  1990.  
  1991.  
  1992.  
  1993.  
  1994.  
  1995.  
  1996.                              Bingo 2.10a Reference Manual
  1997.                                           31
  1998.  
  1999.  
  2000.  
  2001.  
  2002.                                     File Handling
  2003.                                     -------------
  2004.  
  2005.                Bingo has extensive file handling capabilities, more than
  2006.           almost any other editor available.  Literally, there is little
  2007.           you could want to do with a file which Bingo will not let you do. 
  2008.  
  2009.                A couple of words are in order about the file format.  Bingo
  2010.           cares not at all if the file you are reading is delimited by
  2011.           carriage-return/linefeed pairs or just linefeed characters; Bingo
  2012.           will read both with equal aplomb.  Similarly, Bingo doesn't
  2013.           object to files ending with the EOF character (ASCII 26).  On
  2014.           output, the output format is governed by the configuration
  2015.           settings accessible through the 'conf_eof' and 'conf_lfs'
  2016.           functions. 
  2017.  
  2018.                Here are some of the high points in file handling with
  2019.           Bingo.
  2020.  
  2021.           Edit_file & Load_file
  2022.           ---------------------
  2023.                Editing a file with an 'edit_file' function may not always
  2024.           physically load the file from disk.  If the asked for name is
  2025.           already being edited, you will simply be moved to the proper
  2026.           buffer.  Conversely, loading a file with the 'load_file' function
  2027.           will always load the file from disk; if it exists in the ring
  2028.           currently, the in-memory version will be killed first.
  2029.  
  2030.           Choose_file
  2031.           -----------
  2032.                The 'choose_file' function pops up a list of the current
  2033.           files in the ring, and allows you to choose from among them. 
  2034.           Also, the option to edit a new file exists; this option is
  2035.           equivalent to the 'edit_file' function.
  2036.  
  2037.           Rename_file
  2038.           -----------
  2039.                The 'rename_file' function changes nothing on the disk until
  2040.           you save the file explicitly; however, it does change the name of
  2041.           the in-memory file.
  2042.  
  2043.           Quit
  2044.           ----
  2045.                This is the usual way to exit a file.  If the file has not
  2046.           been modified, Bingo will immediately quit the file.  If the file
  2047.           has been modified, Bingo will ask you if you wish to save the
  2048.           file.  Remember that in this case, a <return> indicates a yes
  2049.           answer.
  2050.  
  2051.           Quit_all
  2052.           --------
  2053.  
  2054.                              Bingo 2.10a Reference Manual
  2055.                                           32
  2056.  
  2057.  
  2058.  
  2059.  
  2060.                This function repeatedly does a 'quit_file' on each file in
  2061.           the ring.  You can abort the operation at any time by typing
  2062.           <Escape> in response to a query.
  2063.  
  2064.           Abort & Abort_all
  2065.           -----------------
  2066.                These are very dangerous functions.  'abort' exits the file,
  2067.           no questions asked.  'abort_all' exits the program, no questions
  2068.           asked.
  2069.  
  2070.  
  2071.  
  2072.  
  2073.  
  2074.  
  2075.  
  2076.  
  2077.  
  2078.  
  2079.  
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110.  
  2111.  
  2112.                              Bingo 2.10a Reference Manual
  2113.                                           33
  2114.  
  2115.  
  2116.  
  2117.  
  2118.           Delete_file
  2119.           -----------
  2120.                This is just an easy way to delete an arbitrary file on
  2121.           disk.  No more, no less, but sometimes you do need free up disk
  2122.           space.
  2123.  
  2124.           Zap_file
  2125.           --------
  2126.                This allows you to wipe out the disk copy of the currently
  2127.           active file.  It does nothing to the in-memory version of the
  2128.           file itself.
  2129.  
  2130.           Modify_save & Modify_save_all
  2131.           -----------------------------
  2132.                These functions respectively save the current file or each
  2133.           file if and only if it has been modified.  Useful when saving
  2134.           files to compile, so that only modified files get recompiled.
  2135.  
  2136.           Switch_file
  2137.           -----------
  2138.                This function essentially performs a 'quit_file' followed by
  2139.           an 'edit_file'.
  2140.  
  2141.  
  2142.           Clean_file & Clean_all
  2143.           ----------------------
  2144.                These functions allow you to reset the status of the file
  2145.           (or all the files) to unmodified.
  2146.  
  2147.           Pick_file
  2148.           ---------
  2149.                Bingo will, if asked, maintain a list of the 15 most
  2150.           recently edited files.  Based on the setting via the
  2151.           'conf_name_save' function, the files will be saved in either the
  2152.           current directory or in Bingo's home directory.  'Pick_file' will
  2153.           popup a list of the 15 files, most recent at the top.  By
  2154.           selecting a file, you are invoking the 'edit_file' function on
  2155.           it.
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162.  
  2163.  
  2164.  
  2165.  
  2166.  
  2167.  
  2168.  
  2169.  
  2170.                              Bingo 2.10a Reference Manual
  2171.                                           34
  2172.  
  2173.  
  2174.  
  2175.  
  2176.                                       Searching
  2177.                                       ---------
  2178.  
  2179.                There are two search algorithms present in Bingo.  One is
  2180.           very simple and very fast, and part of it is hand-coded in
  2181.           assembler for a bit more speed yet.  For 95% of what you want to
  2182.           do, it is just right.
  2183.                However, with the advent of version 2.01, a second search
  2184.           algorithm was added; a regular-expression method.  Regular
  2185.           expressions are a mathematical way to describe strings of text,
  2186.           and are very powerful.  Bingo's algorithm is reliable but not
  2187.           overly speedy; I suggest you keep this in mind when using it.
  2188.                If you are not familiar with regular expressions, I am not
  2189.           going to attempt to explain them to you here.  If, however, you
  2190.           have used them before, I will explain the notations I used in
  2191.           coding Bingo's algorithm.
  2192.                To perform a regexp search, use the 'R' modifier on you
  2193.           search (or replace).  If you use this modifier, the string will
  2194.           be interpreted as follows:
  2195.  
  2196.                -    classes, i.e. [0-9] and 'not' classes, i.e [~0-9]
  2197.                -    occurrences of once, once or none (?), one or more (+),
  2198.                     none or more (*)
  2199.                -    grouping  {}
  2200.                -    ORing of {} groups |
  2201.                -    wildcard character .
  2202.                -    match begin and end of lines with ^ and $, respectively
  2203.                -    support for debugging regular expression search 
  2204.                     patterns
  2205.  
  2206.                For some simple examples, see the READ.ME file.
  2207.  
  2208.                It is easy to limit the search area to a specific range by
  2209.           line marking a range of text.  Any search (or replace) which
  2210.           starts within a block will not move past the end of the block. 
  2211.           Basically, this means that no search or replace will continue
  2212.           past the end of a block.
  2213.                The 'C' option in the 'search' function will count the
  2214.           number of occurrences of the target string in the rest of the
  2215.           search area.
  2216.                The 'G'lobal option for search and replace operations starts
  2217.           from the current cursor position, not from the top of the file.
  2218.                Try the Search & Macro capability -- it is sharp.
  2219.  
  2220.  
  2221.  
  2222.  
  2223.  
  2224.  
  2225.  
  2226.  
  2227.  
  2228.                              Bingo 2.10a Reference Manual
  2229.                                           35
  2230.  
  2231.  
  2232.  
  2233.  
  2234.                                       Navigation
  2235.                                       ----------
  2236.  
  2237.                Navigation in Bingo is very straightforward.  You may move
  2238.           in terms of characters, lines, words, windowfuls, and the entire
  2239.           file.  You can also jump to the beginning and end of a marked
  2240.           block.  Finally, you can jump to a specified line, or by a
  2241.           relative number of lines, in the file using the Jump function.
  2242.                In addition, Bingo supports placemarks.  I had never really
  2243.           used placemarks much, or "bookmarks" as they are sometimes
  2244.           called.  But a buddy of mine told me to try them when in big
  2245.           files, and I was impressed.  But the editor I tried them in
  2246.           allowed only one; this is just not enough.  So I went one better. 
  2247.           Actually, I went 9 better.
  2248.                Bingo provides 10 placemarks.  You can drop one, jump to
  2249.           one, or pop up a list of the current placemarks.  Each placemark
  2250.           defines a file, a line, and a column.  When you try to jump to a
  2251.           placemark and the file it pertains to is not in the ring, the
  2252.           file will be fetched.
  2253.  
  2254.  
  2255.  
  2256.  
  2257.  
  2258.  
  2259.  
  2260.  
  2261.  
  2262.  
  2263.  
  2264.  
  2265.  
  2266.  
  2267.  
  2268.  
  2269.  
  2270.  
  2271.  
  2272.  
  2273.  
  2274.  
  2275.  
  2276.  
  2277.  
  2278.  
  2279.  
  2280.  
  2281.  
  2282.  
  2283.  
  2284.  
  2285.  
  2286.                              Bingo 2.10a Reference Manual
  2287.                                           36
  2288.  
  2289.  
  2290.  
  2291.  
  2292.                                     Block Handling
  2293.                                     --------------
  2294.  
  2295.           Marking
  2296.           -------
  2297.                Block marking is extremely flexible.  Three types of marking
  2298.           are supported.  Line marking considers lines to be the smallest
  2299.           indivisible chunks of text.  It is primarily used when editing
  2300.           large sections of program code, since much of this type of
  2301.           editing involves moving lines.
  2302.                Point marking, on the other hand, considers single
  2303.           characters to be the smallest indivisible portions of text.  this
  2304.           is useful for replicating portions of lines, rather than whole
  2305.           lines. 
  2306.                While Point marking "snakes" the mark from one point to the
  2307.           next, Vertical marking lets you define corners of a column-
  2308.           oriented block.
  2309.                In all three cases, marking proceeds as follows: go to the
  2310.           beginning of the block you wish to mark; execute the mark
  2311.           function you wish to apply; move to the end of the block you wish
  2312.           to mark; execute the mark function you wish to apply.
  2313.                Note that when you are block marking, you simply mark the
  2314.           boundaries of the block.  If two ends already exist, Bingo will
  2315.           always try to increase the size of the block.  If the new mark is
  2316.           inside the mark, Bingo will replace the "oldest" mark with the
  2317.           new mark.
  2318.                You can also use the 'extend_mark' function.  This simply
  2319.           extends the current marking scheme to the current cursor
  2320.           position.  If there is no mark in the file, 'Extend_mark' will
  2321.           display an error message.
  2322.  
  2323.           Operations on Blocks
  2324.           --------------------
  2325.                Bingo supports two slightly different sets of block
  2326.           operations.  The first set will be familiar to users of many
  2327.           programming editors, while the second will bring back memories of
  2328.           any Wordstar compatible editor they may have used.
  2329.                The first set of operations consists of three functions:
  2330.           'cut', 'copy', 'paste'.  'cut' snips the marked region to the
  2331.           block buffer, removing it from the file.  'copy' does the same
  2332.           thing, but it leaves the marked text intact in the file.  In both
  2333.           cases, if nothing is marked and you have this option turned on,
  2334.           Bingo will assume you wish the current line to be linemarked.
  2335.                'paste' is very simple: whatever is currently in the block
  2336.           buffer is placed at the current cursor position, based on the
  2337.           marking method used.  If the contents were point marked, the
  2338.           contents are simply 'squirted' into the text.  If the contents
  2339.           were line marked, the lines are inserted above the current line.
  2340.  
  2341.  
  2342.  
  2343.  
  2344.                              Bingo 2.10a Reference Manual
  2345.                                           37
  2346.  
  2347.  
  2348.  
  2349.  
  2350.                There is also an alternate type of paste operation, that of
  2351.           'paste_replace'.  In this case, the paste buffer's contents
  2352.           overwrite the needed amount of space in the text, rather than
  2353.           squirting between existing text.  This type of pasting will only
  2354.           work for Column and Line marked blocks.  Be careful! You can hurt
  2355.           yourself with this one.
  2356.                The second type of block operations available are similar in
  2357.           nature to those used by Wordstar-compatible editors.  Block
  2358.           operations consist of three steps: mark the text, move to the
  2359.           destination position, invoke the function.
  2360.                'block_move' moves the currently marked blocked of text to
  2361.           the current cursor position.  'block_copy' does the same thing,
  2362.           except it leaves a copy behind.
  2363.                'block_delete' is functionally identical to Cut, except that
  2364.           it requires that a block be marked; the setting of the auto
  2365.           linecut toggle has no effect on 'block_delete'.
  2366.  
  2367.           Named Buffers
  2368.           -------------
  2369.                In addition to the default paste buffer, Bingo supports 26
  2370.           named buffers, 'a'-'z'.  In order to change which buffer is
  2371.           currently in use, use the 'name_buffer' function.  Press the
  2372.           letter of the buffer you want, or <return> for the default
  2373.           buffer.  Until you change the buffer, Bingo will use the
  2374.           currently named buffer for all its operations.  All buffers will
  2375.           be saved when a swapping operation is being done.
  2376.  
  2377.           Miscellaneous Functions
  2378.           -----------------------
  2379.                The 'buffer_info' function displays various pertinent info
  2380.           about all the paste buffers, as well as which buffer is the
  2381.           currently active one.  
  2382.                The 'look_buffer' function will display the current contents
  2383.           of the current paste buffer in a non-editable window, up to the
  2384.           first 100 lies.  That should be enough to give you an idea of
  2385.           what is in there.
  2386.                The 'report_bsize' function reports the size of the
  2387.           currently marked block in terms of lines and characters.
  2388.  
  2389.  
  2390.  
  2391.  
  2392.  
  2393.  
  2394.  
  2395.  
  2396.  
  2397.  
  2398.  
  2399.  
  2400.  
  2401.  
  2402.                              Bingo 2.10a Reference Manual
  2403.                                           38
  2404.  
  2405.  
  2406.  
  2407.  
  2408.                                       Utilities
  2409.                                       ---------
  2410.  
  2411.                Bingo provides large number of utilities to be used to
  2412.           manipulate text.  Functions are available to:
  2413.  
  2414.                -    change the case of a block
  2415.                -    strip the high bit from characters in a block
  2416.                -    place tabs within text, and expand tabs within text
  2417.                -    shift blocks a certain number of spaces
  2418.                -    align lines with other lines
  2419.                -    sort blocks, in ascending or descending order, on a
  2420.                     particular column
  2421.                -    fill a vertically-marked block with a specific
  2422.                     character 
  2423.                -    format a paragraph
  2424.                -    count the number of words over a span of lines
  2425.                -    insert the current time and date into the file
  2426.  
  2427.                The big thing with the utilities is: play with them.  They
  2428.           allow you to do some really useful things to your text. 
  2429.           Particularly, entab/detab are very useful when importing files
  2430.           from other systems/editors.  You can take a file with hard tabs
  2431.           in it which assumed a tabsize of 8 characters, detab it, change
  2432.           the tabsize to 3, entab it, and save it ready for another editor
  2433.           which demands hard tabs with a tabsize of 3.
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447.  
  2448.  
  2449.  
  2450.  
  2451.  
  2452.  
  2453.  
  2454.  
  2455.  
  2456.  
  2457.  
  2458.  
  2459.  
  2460.                              Bingo 2.10a Reference Manual
  2461.                                           39
  2462.  
  2463.  
  2464.  
  2465.  
  2466.                                    Extra Functions
  2467.                                    ---------------
  2468.  
  2469.           Help
  2470.           ----
  2471.                The 'help' function attempts to read the file BINGO.HLP
  2472.           located in the same directory as BE.EXE.  This file can consist
  2473.           of anything you wish, and contain as many lines as you wish (it
  2474.           must fit into memory...).
  2475.  
  2476.           Info
  2477.           ----
  2478.                This function simply brings up some useful info, such as the
  2479.           size each file will be when written to disk, current date and
  2480.           time, etc.
  2481.  
  2482.           Pick & Exec
  2483.           -----------
  2484.                This function asks for a function descriptor to execute. 
  2485.           The same function descriptors are used as are used by KEYCFG.  If
  2486.           you give it an unrecognized descriptor, a list of all supported
  2487.           functions are popped up for your convenience.  If you give it
  2488.           substring, such as 'win', all functions descriptors which contain
  2489.           'win' anywhere will be shown; in this case the window functions. 
  2490.           Tie this to an easy to remember key and all of Bingo's functions
  2491.           are at your fingertips.  
  2492.                This is also useful when you are trying to remember a
  2493.           particular function descriptor and you don't have the
  2494.           documentation handy.
  2495.  
  2496.           Quit and Save Status
  2497.           --------------------
  2498.                This simply saves the current Bingo status information,
  2499.           copies of all current files, and exits.  When you next start
  2500.           Bingo, it will ask if you wish to restore Bingo to its previous
  2501.           state.  If you say yes, you will be placed exactly where you left
  2502.           off.  If you indicate no, Bingo will proceed normally, leaving
  2503.           the suspension files in place to be dealt with the next time
  2504.           Bingo is invoked.
  2505.                This function is ultra-useful since it allows for easy
  2506.           interruptions when you are working.
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512.  
  2513.  
  2514.  
  2515.  
  2516.  
  2517.  
  2518.                              Bingo 2.10a Reference Manual
  2519.                                           40
  2520.  
  2521.  
  2522.  
  2523.  
  2524.           Global
  2525.           ------
  2526.                This is an *extremely* powerful function.  When invoked, it
  2527.           asks for a keystroke to execute globally.  The keystroke can
  2528.           invoke a macro, or simple be tied to a function.  For each file
  2529.           in the ring, Bingo will ask if you wish the function to be
  2530.           executed; your options are the same as they are when doing a
  2531.           search & replace operation: 
  2532.                Y         Yes, do operation, go to next file
  2533.                N         No, don't do operation, but do go to next file
  2534.                O         Yes, do the operation, but abort the global
  2535.                          operation afterwards.
  2536.                G         Yes, do the operation, and do it for all remaining
  2537.                          files without asking.
  2538.                Q         Abort the global operation right now.
  2539.           You must be *very* careful when using this operation; any
  2540.           functions which change the number of files in the ring can be
  2541.           dangerous.  Be prudent when using it, and you will be fine, use
  2542.           it without some forethought, and you may get bitten and regret
  2543.           it.
  2544.                In version 2.10a, this function was cleaned up a good deal;
  2545.           it should be rock-steady reliable, and much cleaner in its
  2546.           interface.
  2547.  
  2548.           Ascii_table
  2549.           -----------
  2550.                This function serves a dual purpose.  First, it will pop up
  2551.           a display of all 256 characters, serving as a handy reminder of
  2552.           the characters available.  As you move the cursor over the table,
  2553.           the decimal, octal, hexadecimal, and mnemonic values, if
  2554.           appropriate.
  2555.                Further, by moving onto a particular character and hitting
  2556.           return, you will add this character to the string displayed at
  2557.           the top.  You can build a string up to about 30 characters in
  2558.           length.  The <Backspace> key will delete the last character on
  2559.           the string.  When you press <Escape> to leave, the contents of
  2560.           the string will be inserted into the text at the current cursor
  2561.           position.
  2562.  
  2563.           Load_ & Write_profile
  2564.           ---------------------
  2565.                These functions allow you to manage profile files. 
  2566.           'load_profile' will load the profile file for the given
  2567.           extensions, given that it exists.
  2568.                'write_profile' will save the current text settings to the
  2569.           profile file for the named extension.  Further, you will be given
  2570.           the option of saving the file in the current directory (where
  2571.           Bingo looks first) or in Bingo's home directory (where Bingo
  2572.           looks second).
  2573.  
  2574.  
  2575.  
  2576.                              Bingo 2.10a Reference Manual
  2577.                                           41
  2578.  
  2579.  
  2580.  
  2581.  
  2582.           Repeat_last
  2583.           -----------
  2584.                This is a handy function.  It will execute the most-
  2585.           recently-executed function again.  It won't change what that
  2586.           most-recently-executed function was.
  2587.  
  2588.           Display_file
  2589.           ------------
  2590.                Simple, useful.  It will popup the named file into a
  2591.           scrollable window, very similar to the help file.  This would let
  2592.           you create multiple help files.
  2593.  
  2594.  
  2595.  
  2596.  
  2597.  
  2598.  
  2599.  
  2600.  
  2601.  
  2602.  
  2603.  
  2604.  
  2605.  
  2606.  
  2607.  
  2608.  
  2609.  
  2610.  
  2611.  
  2612.  
  2613.  
  2614.  
  2615.  
  2616.  
  2617.  
  2618.  
  2619.  
  2620.  
  2621.  
  2622.  
  2623.  
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629.  
  2630.  
  2631.  
  2632.  
  2633.  
  2634.                              Bingo 2.10a Reference Manual
  2635.                                           42
  2636.  
  2637.  
  2638.  
  2639.  
  2640.                                   System Operations
  2641.                                   -----------------
  2642.  
  2643.                Bingo supports a number of system operations.  While they
  2644.           are not large in number, they are large in utility.
  2645.  
  2646.           Changing Directories
  2647.           --------------------
  2648.                The 'chdir' function will allow you to change the currently
  2649.           logged directory, or even drive.  Not used often, but when it is
  2650.           needed, it tends to be *really* needed.
  2651.  
  2652.           Simple Execution & Shelling
  2653.           ---------------------------
  2654.                The 'exec_command' function simply executes a given DOS
  2655.           command line and returns.  It does not do anything fancy, and
  2656.           Bingo will remain in memory (consuming quite a bit of memory) but
  2657.           it is fast and simple for issuing short commands.
  2658.                The 'shell' function is identical to 'exec_command', except
  2659.           it takes no arguments.  It simply gives you a DOS shell.
  2660.  
  2661.           Swap Execution & Shelling
  2662.           -------------------------
  2663.                More often than not, particularly in the case of executing
  2664.           command-line compilers, you simply can't afford to let Bingo hang
  2665.           around in memory, since it consumes a bit.  So Bingo provides two
  2666.           other methods for executing commands.  While they appear
  2667.           identical in form and function to the previous pair of functions,
  2668.           'swap_execute' & 'swap_shell', are much more interesting.  
  2669.                While they, too, execute a command or shell to DOS, prior to
  2670.           doing so, they save all relevant information such as copies of
  2671.           the current files, etc., then swap Bingo out of memory.  When
  2672.           this happens, the ~3k kernel of BE.COM is left behind to manage
  2673.           things in Bingo's absence.  When the command is terminated, Bingo
  2674.           will reappear, load all the state info saved previously, and for
  2675.           all intents and purposes, you are right where you left off.  You
  2676.           can define macros across this gap, your placemarks stay intact,
  2677.           etc.  
  2678.                The cost is a small bit of speed when Bingo saves the state
  2679.           information and reads it again later, but it is negligible for
  2680.           the performance return.  It is ideal for running command-line
  2681.           compilers and other memory intensive programs from within Bingo.
  2682.                One thing to remember: the size of your paste buffers as
  2683.           well as the size of your undo stack affect the time it takes to
  2684.           save and restore Bingo's status.  Keep this in mind when you are
  2685.           configuring the stack size, and when you are utilizing multiple
  2686.           paste buffers.
  2687.                In versions prior to 1.1b, Bingo would not swap shell
  2688.           properly on some machines while running DOS 4.00 and higher. 
  2689.           This has been rectified.
  2690.  
  2691.  
  2692.                              Bingo 2.10a Reference Manual
  2693.                                           43
  2694.  
  2695.  
  2696.  
  2697.  
  2698.                If your machine should for some reason have to be reset
  2699.           while Bingo is swapped out (something that happens when you are
  2700.           developing software), the next time you start Bingo, it will
  2701.           treat the swap files as if they were suspension files, and
  2702.           restore Bingo to its previous state.  
  2703.  
  2704.  
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710.  
  2711.  
  2712.  
  2713.  
  2714.  
  2715.  
  2716.  
  2717.  
  2718.  
  2719.  
  2720.  
  2721.  
  2722.  
  2723.  
  2724.  
  2725.  
  2726.  
  2727.  
  2728.  
  2729.  
  2730.  
  2731.  
  2732.  
  2733.  
  2734.  
  2735.  
  2736.  
  2737.  
  2738.  
  2739.  
  2740.  
  2741.  
  2742.  
  2743.  
  2744.  
  2745.  
  2746.  
  2747.  
  2748.  
  2749.  
  2750.                              Bingo 2.10a Reference Manual
  2751.                                           44
  2752.  
  2753.  
  2754.  
  2755.  
  2756.                                         Macros
  2757.                                         ------
  2758.  
  2759.                Bingo provides tremendous support for the creation,
  2760.           management, and execution of keyboard macros.  This level is
  2761.           support was indicated by the author's own experience in
  2762.           developing Bingo.  
  2763.                I started using Bingo to develop Bingo very early on in
  2764.           Bingo's life (it didn't even have a search function at the time;
  2765.           horrible!) in the hopes that this would ferret out bugs more
  2766.           quickly than testing would.  However, one of the things I missed
  2767.           from my previous editor was the ability to define and replay
  2768.           macros on the fly.  In addition, I felt my previous editor was
  2769.           missing some key functionality when it came to dealing with the
  2770.           keyboard, so I had the opportunity to "do macros right".  Of
  2771.           course, my definition of useful macros may differ from yours,
  2772.           but...
  2773.  
  2774.                     !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  2775.                     !!!!                                       !!!!
  2776.                     !!!! Macros from versions prior to 2.0 are !!!!
  2777.                     !!!!                  not                  !!!!
  2778.                     !!!! compatible with version 2.0 and above !!!!
  2779.                     !!!!                                       !!!!
  2780.                     !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  2781.  
  2782.                As of version 2.01, Bingo retains the status of the last
  2783.           function executed internally as a True or False value; you can
  2784.           see this reflected on the far right end of the active status
  2785.           line.  If, during the execution of a macro a function returns a
  2786.           False value, the macro will terminate.  Further, if applicable,
  2787.           the repeat command will terminate.  This allows you to execute
  2788.           macros "until function failure" based on things like trying to
  2789.           move beyond the beginning of the line.
  2790.  
  2791.           Macro Space
  2792.           -----------
  2793.                Prior to version 2.10a, Binge restricted macro space to 2048
  2794.           macro tokens and 200 key combinations.  With version 2.10a, these
  2795.           limits have been removed.  Bingo will dynamically increase its
  2796.           macro space to compensate when you add or release memory.  Thus,
  2797.           macro space is limited by available memory.
  2798.  
  2799.  
  2800.  
  2801.  
  2802.  
  2803.  
  2804.  
  2805.  
  2806.  
  2807.  
  2808.                              Bingo 2.10a Reference Manual
  2809.                                           45
  2810.  
  2811.  
  2812.  
  2813.  
  2814.           Defining Macros
  2815.           ---------------
  2816.                There are three ways to define macros, all very similar. 
  2817.           You can define the scrap key to hold a macro, a single key to
  2818.           hold a macro, or a two key combination to hold a macro.  Any of
  2819.           these functions will also end a macro definition if one is
  2820.           currently in progress.
  2821.                Macros can be defined across any number of activities. 
  2822.           Pressing <Escape> at any time as the response to a query from
  2823.           Bingo will end the macro presently being recorded.
  2824.  
  2825.  
  2826.  
  2827.  
  2828.  
  2829.  
  2830.  
  2831.  
  2832.  
  2833.  
  2834.  
  2835.  
  2836.  
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842.  
  2843.  
  2844.  
  2845.  
  2846.  
  2847.  
  2848.  
  2849.  
  2850.  
  2851.  
  2852.  
  2853.  
  2854.  
  2855.  
  2856.  
  2857.  
  2858.  
  2859.  
  2860.  
  2861.  
  2862.  
  2863.  
  2864.  
  2865.  
  2866.                              Bingo 2.10a Reference Manual
  2867.                                           46
  2868.  
  2869.  
  2870.  
  2871.  
  2872.           Saving Macros
  2873.           -------------
  2874.                Using the single key save and load functions, you can save
  2875.           favorite macros to named files for later recall.  Single saving
  2876.           also saves the key sequence the macro is attached to, and loading
  2877.           it in again will redefine the key.
  2878.  
  2879.           Saving the Entire Key Set
  2880.           -------------------------
  2881.                Bingo also allows you to save the entire key table,
  2882.           including all key assignments and all macros, for later recall. 
  2883.           Recalling a keyset file will overwrite the entire key table, so
  2884.           be warned.  
  2885.                When you save a keyset file, you can name the keyset file,
  2886.           and you can have it saved in Bingo's home directory or in an
  2887.           arbitrary directory.  If you name it Keycfg.set, it becomes the
  2888.           default file keyset, depending where you put it.  When Bingo
  2889.           starts up, it looks first in the current directory, then in its
  2890.           home directory for KEYCFG.SET.  This allows you to have multiple
  2891.           key configurations in different disk locations while still
  2892.           maintaining one executable.
  2893.  
  2894.           Executing a Macro File
  2895.           ----------------------
  2896.                You may also execute any macro which was single saved to a
  2897.           file at any time.  This executes it one, without disturbing the
  2898.           current key table assignments.  Good for macros used
  2899.           infrequently, but which are very useful.  I have a whole library
  2900.           of interesting ones saved at this point.
  2901.  
  2902.  
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908.  
  2909.  
  2910.  
  2911.  
  2912.  
  2913.  
  2914.  
  2915.  
  2916.  
  2917.  
  2918.  
  2919.  
  2920.  
  2921.  
  2922.  
  2923.  
  2924.                              Bingo 2.10a Reference Manual
  2925.                                           47
  2926.  
  2927.  
  2928.  
  2929.  
  2930.                                        Windows
  2931.                                        -------
  2932.  
  2933.           Window_split, _edit & _load
  2934.           ---------------------------
  2935.                 These three functions create new windows from the current
  2936.           window.  Window_split simply splits the current window into two,
  2937.           both containing the same file.
  2938.                Window_edit essentially performs a split, then executes an
  2939.           edit_file function.
  2940.                Window_load essentially performs a split, then a load_file
  2941.           function.
  2942.  
  2943.           Window_vertical
  2944.           ---------------
  2945.                Starting in version 2.0, Bingo provided the ability to split
  2946.           windows vertically.  There are some restrictions, however. 
  2947.           Vertical windows must always exist in pairs; that is, two windows
  2948.           sharing one status line.  They are even resized together.  This
  2949.           is not a large problem, but you should be aware of it.
  2950.  
  2951.           Window_resize
  2952.           -------------
  2953.                This function allows you to change the vertical size of a
  2954.           window, as well as the window below the current one.  
  2955.  
  2956.           Window_one & Window_zoom
  2957.           ------------------------
  2958.                While window_one and window_zoom superficially perform the
  2959.           same action, remember that zoom is simply a toggle, while the
  2960.           'window_one' function eliminates all windows except the current,
  2961.           growing the current window to full size.
  2962.  
  2963.  
  2964.  
  2965.  
  2966.  
  2967.  
  2968.  
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974.  
  2975.  
  2976.  
  2977.  
  2978.  
  2979.  
  2980.  
  2981.  
  2982.                              Bingo 2.10a Reference Manual
  2983.                                           48
  2984.  
  2985.  
  2986.  
  2987.  
  2988.                                        Printing
  2989.                                        --------
  2990.  
  2991.                "The main thing to remember about printing is, it's
  2992.           dangerous."  That's what was true about versions prior to 2.0. 
  2993.           However, with the advent of version 2.0, extensive checking was
  2994.           done, and Bingo will detect an inactive parallel or serial
  2995.           device.
  2996.                Prior to version 2.01, there were two functions to print,
  2997.           one for the file and one for a marked block.  As of version 2.01,
  2998.           these have been combined into 'print_file', which prints a block
  2999.           if it is marked, otherwise it prints the file.
  3000.                You can also send a linefeed or formfeed character, or send
  3001.           a sequence of ASCII values.  
  3002.                Also notice that you are asked if you want line numbers
  3003.           printed out with each line.  Kudos to Bob Boyken for this idea!
  3004.  
  3005.  
  3006.  
  3007.  
  3008.  
  3009.  
  3010.  
  3011.  
  3012.  
  3013.  
  3014.  
  3015.  
  3016.  
  3017.  
  3018.  
  3019.  
  3020.  
  3021.  
  3022.  
  3023.  
  3024.  
  3025.  
  3026.  
  3027.  
  3028.  
  3029.  
  3030.  
  3031.  
  3032.  
  3033.  
  3034.  
  3035.  
  3036.  
  3037.  
  3038.  
  3039.  
  3040.                              Bingo 2.10a Reference Manual
  3041.                                           49
  3042.  
  3043.  
  3044.  
  3045.  
  3046.                                 Error Parsing and Undo
  3047.                                 ----------------------
  3048.  
  3049.           How Error Parsing Works
  3050.           -----------------------
  3051.                Bingo provides the capability to automatically parse
  3052.           compiler generated error messages.  The procedure for this is
  3053.           fairly simple.
  3054.                First, you must have a text file containing the error output
  3055.           of the compiler (or assembler) in question.  This usually
  3056.           obtained by running said compiler and redirecting its output to a
  3057.           file.  Bring this file into the editor.
  3058.                Next, call the 'setup_err_parse' function, and give it the
  3059.           name of the file.  If the name matches a file in the ring, Bingo
  3060.           will tell you that error processing is setup properly.
  3061.                Now it is simple; simple call the 'next_error' or
  3062.           'prev_error' functions.  The following things will happen:
  3063.  
  3064.                1)   Bingo will see if a next (or previous) error can be
  3065.                found.  If not, it will report that no more errors exist.
  3066.                2)   Assuming an error line is found, the filename and line
  3067.                number will be picked out of the line.  Bingo will perform
  3068.                and edit_file operation on the filename, then jump to the
  3069.                offending line.  All of this will happen within the current
  3070.                window.
  3071.                3)   Also, any onscreen window which contains the file being
  3072.                parsed will be updated.  The current error line will be
  3073.                highlighted automatically.
  3074.  
  3075.           As you can see, error parsing is super useful.  For a further
  3076.           example of how it works, see the example macro in the section on
  3077.           the KEYCFG program.
  3078.  
  3079.           Error Parsing Method
  3080.           --------------------
  3081.                Bingo parses error files using a "fuzzy" or "best-guess"
  3082.           algorithm.  It checks each line as follows.
  3083.                First, Bingo attempts to find a valid filename on the line. 
  3084.           The filename must contain a period, and it must have a file
  3085.           extension.
  3086.                After finding such a filename, Bingo verifies that the named
  3087.           file exists on disk or in the current ring.  If it does, Bingo
  3088.           now begins to look for the line number within the error file. 
  3089.           Bingo will look for the first number to follow the filename, and
  3090.           use this as the line number.
  3091.                If both a filename & a line number are found, the line will
  3092.           be recognized as a valid error/warning line. 
  3093.                This algorithm will work for the Borland and Microsoft
  3094.           developmental tools.  However, in some cases, you may have to
  3095.           consult your manual in order to find what command-line switches
  3096.  
  3097.  
  3098.                              Bingo 2.10a Reference Manual
  3099.                                           50
  3100.  
  3101.  
  3102.  
  3103.  
  3104.           have to be set for your compiler to output errors in a usable
  3105.           message format.
  3106.  
  3107.                !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  3108.                !!!!!!!!                                !!!!!!!!!
  3109.                !!!!!!!! Note that linker errors do not !!!!!!!!!
  3110.                !!!!!!!! have line numbers, and so will !!!!!!!!!
  3111.                !!!!!!!!      not be recognized.        !!!!!!!!!
  3112.                !!!!!!!!                                !!!!!!!!!
  3113.                !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  3114.  
  3115.           However, whenever Bingo encounters a situation where there are no
  3116.           more errors, it will display a message saying so.  Further, it
  3117.           will display a portion of the last non-blank line in the error
  3118.           file on the message line with the "No more Errors" message, so
  3119.           you can verify that all went well.
  3120.  
  3121.           Undo Capabilities
  3122.           -----------------
  3123.                Bingo has several capabilities to allow you to recover from
  3124.           recent mistakes.  The 'Restore_line' function, will simply recall
  3125.           the state of the current line to what it was when you first
  3126.           arrived.  This is good only as long as you do not move from the
  3127.           line; once you leave the line, its original state is lost
  3128.           forever.
  3129.                This type of error-recovery is good for small things, but
  3130.           something more substantial was needed.  So Bingo keeps a stack of
  3131.           recently deleted items; text deleted by 'del_eol', 'del_bol', and
  3132.           'del_line' functions.  This stack is kept in reverse order; that
  3133.           is, the most recently deleted text is placed in top of the undo
  3134.           stack.
  3135.                Additionally, you have an option regarding text cut to the
  3136.           paste buffer.  Normally, when you place text into the paste
  3137.           buffer (Using the 'cut', 'copy', etc. functions), if the paste
  3138.           buffer already contains something, that text is discarded. 
  3139.           However, if you set the 'cut to stack' option on (in the General
  3140.           Config Menu, or with the 'conf_cut_stack' function), this text
  3141.           will be pushed onto the stack also.
  3142.                You can control the size of the undo stack using the
  3143.           'conf_kill_size' function (1 to 10240 lines), or through the
  3144.           config menus.  You cannot, however, turn it off.
  3145.  
  3146.           Manipulating the Undo Stack
  3147.           ---------------------------
  3148.                There are three functions available to help you deal with
  3149.           the undo stack.  'rotate_kill' will popup a list of the current
  3150.           stack's contents.  By moving the menu bar and hitting return, you
  3151.           can move the selected entry to the top of the stack.
  3152.                'unkill' and 'paste_kill' are very similar.  They take the
  3153.           top member of the stack and insert it above the current line. 
  3154.           'unkill' also removes the top member from the stack.
  3155.  
  3156.                              Bingo 2.10a Reference Manual
  3157.                                           51
  3158.  
  3159.  
  3160.  
  3161.  
  3162.                                   Configuring Bingo
  3163.                                   -----------------
  3164.  
  3165.                Bingo is extremely configurable.  To access the
  3166.           configuration menu, select the 'Config' option from the main
  3167.           menu, or attach keys to particular configuration functions.  The
  3168.           settings themselves are explained explicitly in the Function List
  3169.           section of this document in the Configuration portion.  
  3170.                To make the current selections permanent, select the "Write
  3171.           setting" option found on the main configuration menu.
  3172.                There is one item of interest of interest.  There are nine
  3173.           settings which as of version 2.01 are maintained on a per buffer
  3174.           basis.  These settings are the ones saved in profile files, and
  3175.           are found on the 'Text Settings' config menu.  Each time you
  3176.           change these with a 'conf_' function, you change both the
  3177.           underlying default (used when new files are brought in) and the
  3178.           current buffer's settings.  For a few settings, there are also
  3179.           'toggle_' functions, such as 'toggle_cmode'.  These change only
  3180.           the current buffer's settings.
  3181.  
  3182.  
  3183.  
  3184.  
  3185.  
  3186.  
  3187.  
  3188.  
  3189.  
  3190.  
  3191.  
  3192.  
  3193.  
  3194.  
  3195.  
  3196.  
  3197.  
  3198.  
  3199.  
  3200.  
  3201.  
  3202.  
  3203.  
  3204.  
  3205.  
  3206.  
  3207.  
  3208.  
  3209.  
  3210.  
  3211.  
  3212.  
  3213.  
  3214.                              Bingo 2.10a Reference Manual
  3215.                                           52
  3216.  
  3217.  
  3218.  
  3219.  
  3220.                                     Function List
  3221.                                     -------------
  3222.  
  3223.                The following section contains a listing of the functions
  3224.           supported by Bingo, grouped by functionality.  The index at the
  3225.           end of this document makes alphabetical location of these
  3226.           functions simple.
  3227.  
  3228.           General Editing
  3229.           ---------------
  3230.  
  3231.           insert_tab:         insert the number of spaces needed to move
  3232.                               the cursor to the next tab stop, based on the
  3233.                               current tabsize.
  3234.  
  3235.           carriage:           splits the current line by moving the cursor
  3236.                               to the start of the next line, taking
  3237.                               everything to the right of the cursor along
  3238.                               for the ride.  If this moves you onto the
  3239.                               bottom line of the window, the line will be
  3240.                               centered on the screen.  Depending on C mode
  3241.                               and the AutoIndent mode settings, automatic
  3242.                               indentation of some type may be performed.
  3243.  
  3244.           toggle_ins:         toggles the insert/overwrite mode. Changes
  3245.                               only the setting of the current buffer.
  3246.  
  3247.           toggle_wrap:        toggles the word wrap setting. Changes only
  3248.                               the setting of the current buffer.
  3249.  
  3250.           toggle_cmode:       toggles the C mode setting, regardless of the
  3251.                               file name. Changes only the setting of the
  3252.                               current buffer.
  3253.  
  3254.           toggle_autoindent:  toggle the autoindent setting.  Changes only
  3255.                               the setting of the current buffer.
  3256.  
  3257.           main_menu:          invokes the main menu.
  3258.  
  3259.           del_char:           deletes the current character at the cursor
  3260.                               position; if it was at the end of a line,
  3261.                               brings the next line up.
  3262.  
  3263.           back_space:         performs a destructive backspace, based on
  3264.                               the current deletion mode in effect.
  3265.  
  3266.           del_line:           deletes the entire current line, regardless
  3267.                               of position.
  3268.  
  3269.           del_eol:            deletes all text to the end of the line; if
  3270.                               at the end of a line, joins the lines.
  3271.  
  3272.                              Bingo 2.10a Reference Manual
  3273.                                           53
  3274.  
  3275.  
  3276.  
  3277.  
  3278.           del_bol:            deletes all text to beginning of line, moves
  3279.                               to first column. If at the beginning, joins
  3280.                               the line with the previous line.
  3281.  
  3282.           default_del:        does one of two things depending on whether
  3283.                               or not a block is marked.  If a block is
  3284.                               marked, the 'cut' function is executed.  If
  3285.                               no block is marked, the 'del_char' function
  3286.                               is executed.
  3287.  
  3288.           default_bspace:     similar to 'default_del', except that if no
  3289.                               block is marked, a 'back_space' function is
  3290.                               executed.
  3291.  
  3292.           del_word_rt:        deletes from the current cursor position to
  3293.                               the start of the next word to the right.
  3294.  
  3295.           del_word_lt:        deletes from the current cursor position to
  3296.                               the start of the next word to the left.
  3297.  
  3298.  
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304.  
  3305.  
  3306.  
  3307.  
  3308.  
  3309.  
  3310.  
  3311.  
  3312.  
  3313.  
  3314.  
  3315.  
  3316.  
  3317.  
  3318.  
  3319.  
  3320.  
  3321.  
  3322.  
  3323.  
  3324.  
  3325.  
  3326.  
  3327.  
  3328.  
  3329.  
  3330.                              Bingo 2.10a Reference Manual
  3331.                                           54
  3332.  
  3333.  
  3334.  
  3335.  
  3336.           File Handling
  3337.           -------------
  3338.  
  3339.           edit_file:          after asking for a filename; if the file is
  3340.                               already in the ring, it simply switches to
  3341.                               it.  If it is not in the ring, it loads the
  3342.                               file.
  3343.  
  3344.           choose_file:        pops up a list of current files in the ring,
  3345.                               and an option for a new file.  Selecting the
  3346.                               New File option performs an 'edit_file'
  3347.                               function.
  3348.  
  3349.           load_file:          after asking for a filename, it loads that
  3350.                               file from disk.  If the file is already in
  3351.                               the ring, the in-memory version is first
  3352.                               deleted from memory.
  3353.  
  3354.           rename_file:        renames current file.
  3355.  
  3356.           switch_file:        switches to a different file, performing a
  3357.                               quit on the current file first.  If you
  3358.                               escape out of the quit option, the switch
  3359.                               operation will abort.
  3360.  
  3361.           save_file:          saves the current file; does not exit.
  3362.  
  3363.           modify_save:        saves current file ONLY if it has been
  3364.                               modified.
  3365.  
  3366.           quit:               exits current file.  If the file was
  3367.                               modified, it will ask you if you wish to save
  3368.                               the file; a <return> indicates yes.
  3369.  
  3370.           abort:              exits the file, no protection, no save.
  3371.  
  3372.           file:               saves and exits current file.
  3373.  
  3374.           next_file:          moves to the next file in ring.
  3375.  
  3376.           prev_file:          moves to the previous file in the ring.
  3377.  
  3378.           quit_all:           performs a quit on each file in the ring.
  3379.  
  3380.           abort_all:          aborts all files, no questions asks.
  3381.  
  3382.           file_all:           saves and exits all files.
  3383.  
  3384.           save_all:           saves all files.
  3385.  
  3386.           modify_save_all:    saves each modified file in the ring.
  3387.  
  3388.                              Bingo 2.10a Reference Manual
  3389.                                           55
  3390.  
  3391.  
  3392.  
  3393.  
  3394.  
  3395.           delete_file:        asks for a filename to delete on disk.
  3396.  
  3397.           zap_file:           delete's the disk copy of the current file. 
  3398.  
  3399.           block_load:         loads a file into the current position
  3400.  
  3401.           clean_file:         resets the 'modified' status of the file to
  3402.                               FALSE.
  3403.  
  3404.           clean_all:          resets the 'modified' status of all files in
  3405.                               the ring to FALSE.
  3406.  
  3407.  
  3408.  
  3409.  
  3410.  
  3411.  
  3412.  
  3413.  
  3414.  
  3415.  
  3416.  
  3417.  
  3418.  
  3419.  
  3420.  
  3421.  
  3422.  
  3423.  
  3424.  
  3425.  
  3426.  
  3427.  
  3428.  
  3429.  
  3430.  
  3431.  
  3432.  
  3433.  
  3434.  
  3435.  
  3436.  
  3437.  
  3438.  
  3439.  
  3440.  
  3441.  
  3442.  
  3443.  
  3444.  
  3445.  
  3446.                              Bingo 2.10a Reference Manual
  3447.                                           56
  3448.  
  3449.  
  3450.  
  3451.  
  3452.           Searching
  3453.           ---------
  3454.  
  3455.           again:              repeat the last search operation.  If none
  3456.                               has yet been done, works just like search. 
  3457.                               If the last search operation done was a
  3458.                               search & replace, only the search portion is
  3459.                               done.
  3460.  
  3461.           search:             search for text.  Will ask for the target
  3462.                               text, and two modifiers:
  3463.                                    I Ignore case
  3464.                                    B Backwards
  3465.                                    C Count
  3466.                                    R Regexp
  3467.                                    A Accent
  3468.                               The 'C' option simply counts the number of
  3469.                               occurrences.
  3470.                               The 'R' option tells Bingo to interpret the
  3471.                               input string as a regular expression.  See
  3472.                               the section on searching and the READ.ME file
  3473.                               for more details.
  3474.                               The 'A' option tells Bingo to highlight the
  3475.                               'found' text until the next keystroke
  3476.                               arrives.
  3477.                               If the text is marked, the marking will be
  3478.                               treated as linemarking, and Bingo's search
  3479.                               will not continue past the end of the marked
  3480.                               area.  This allows you to limit the searching
  3481.                               scope to a particular area.
  3482.  
  3483.           replace:            search and replace text.  Will ask for
  3484.                               target, replacement text, and three
  3485.                               modifiers:
  3486.                                    I Ignore Case
  3487.                                    B Backwards
  3488.                                    G Global Search/Replace
  3489.                                    R Regexp
  3490.                                    A Accent
  3491.                                    P Preserve
  3492.                                    D Debug
  3493.                               If Global is selected, Bingo will simply
  3494.                               replace all matching occurrences with the
  3495.                               replacement text.  If not, Bingo will stop at
  3496.                               each match and ask:
  3497.                                    Yes:      replace and continue.
  3498.                                    No:       don't replace, but continue
  3499.                                              search.
  3500.                                    Only:     Replace this and stop
  3501.                                    Quit:     stop, no replacement.
  3502.  
  3503.  
  3504.                              Bingo 2.10a Reference Manual
  3505.                                           57
  3506.  
  3507.  
  3508.  
  3509.  
  3510.                                    Global:   Continue with global
  3511.                                              replacement
  3512.                               'R' & 'A' options work as in the search case.
  3513.                               'P' tells Bingo to preserve the original
  3514.                               cursor location and return to it when done
  3515.                               with the replace operation.
  3516.                               'D' is useful for regular expression work. 
  3517.                               It tells Bingo to display its conception of
  3518.                               the target string (grouping, classes,
  3519.                               occurance, etc).
  3520.                               Marked text limits the range as in the search
  3521.                               function.
  3522.  
  3523.           search_macro:       will acted like the 'search' function, but
  3524.                               will ask for a key to apply when found.  It
  3525.                               will work like the replace function, but
  3526.                               instead of replacing, it will execute the
  3527.                               given key.  
  3528.  
  3529.           mark_last_found:    this will unmark the file and mark the last
  3530.                               found text if you have not moved.
  3531.  
  3532.  
  3533.  
  3534.  
  3535.  
  3536.  
  3537.  
  3538.  
  3539.  
  3540.  
  3541.  
  3542.  
  3543.  
  3544.  
  3545.  
  3546.  
  3547.  
  3548.  
  3549.  
  3550.  
  3551.  
  3552.  
  3553.  
  3554.  
  3555.  
  3556.  
  3557.  
  3558.  
  3559.  
  3560.  
  3561.  
  3562.                              Bingo 2.10a Reference Manual
  3563.                                           58
  3564.  
  3565.  
  3566.  
  3567.  
  3568.           Navigation
  3569.           ----------
  3570.  
  3571.           down_page:          moves down one windowful.
  3572.  
  3573.           up_page:            moves up one windowful.
  3574.  
  3575.           cursor_right:       moves right one char; wraps if necessary and
  3576.                               if bounce mode is active.
  3577.  
  3578.           cursor_left:        moves left one char, wraps if necessary and
  3579.                               if bounce mode is active.
  3580.  
  3581.           cursor_up:          moves up one line.
  3582.  
  3583.           cursor_down:        moves down one line.
  3584.  
  3585.           back_tab:           moves back to the previous tab stop.  Does
  3586.                               not change the text at all.
  3587.  
  3588.           begin_line:         goes to beginning of line.
  3589.  
  3590.           end_line:           goes to end of line.
  3591.  
  3592.           top_of_file:        jump to top of file.
  3593.  
  3594.           bot_of_file:        jump to bottom of file.
  3595.  
  3596.           next_word:          goes to beginning of next word.
  3597.  
  3598.           prev_word:          goes to beginning of previous word.
  3599.  
  3600.           top_of_screen:      jumps to the top of screen.
  3601.  
  3602.           bottom_of_screen:   jumps to the bottom of screen.
  3603.  
  3604.           top_of_block:       jumps to the top of marked block.
  3605.  
  3606.           bottom_of_block:    jumps to the bottom of marked block.
  3607.  
  3608.           jump:               jump to position.  If the number is prefaced
  3609.                               with a '+' character, Bingo will jump the
  3610.                               relative distance forward.  If the number is
  3611.                               prefaced with a '-' character, Bingo will
  3612.                               jump the relative distance backwards.
  3613.  
  3614.           center_line:        makes the current line the center line of the
  3615.                               current window, and repaint the entire
  3616.                               screen, all windows.  
  3617.  
  3618.  
  3619.  
  3620.                              Bingo 2.10a Reference Manual
  3621.                                           59
  3622.  
  3623.  
  3624.  
  3625.  
  3626.           indent_up:          moves to previous line with same indentation
  3627.                               scheme as current line.
  3628.  
  3629.           indent_down:        moves to next line with same indentation
  3630.                               scheme as current line.
  3631.  
  3632.           snap_to_mouse_xy:   moves the cursor to the current mouse
  3633.                               position, changing windows if necessary.
  3634.  
  3635.           mouse_scroll:       moves the cursor to the mouse position when
  3636.                               the mouse button is released;  while the
  3637.                               button is depressed, the file will scroll up
  3638.                               and down, depending on where the mouse cursor
  3639.                               is moved.  The closer the cursor is to the
  3640.                               top and bottom of the window, the faster the
  3641.                               file will scroll.
  3642.  
  3643.           place_mark:         drops a placemark, inquiring as which of the
  3644.                               10 allowed (0-9) you are concerned with. 
  3645.                               Each placemark contains the filename, the
  3646.                               line, the column.
  3647.  
  3648.           jump_mark:          jumps to the specified placemark.  If the
  3649.                               specified filename is not in the ring, Bingo
  3650.                               will go and get it.
  3651.  
  3652.           show_marks:         pops up a window showing the current
  3653.                               placemarks in effect for this editing
  3654.                               session.
  3655.  
  3656.           scroll_up:          scroll the display up one line, keeping the
  3657.                               cursor on its proper line.
  3658.  
  3659.           scroll_down:        scroll the display down one line, keeping the
  3660.                               cursor on its proper line.
  3661.  
  3662.  
  3663.  
  3664.  
  3665.  
  3666.  
  3667.  
  3668.  
  3669.  
  3670.  
  3671.  
  3672.  
  3673.  
  3674.  
  3675.  
  3676.  
  3677.  
  3678.                              Bingo 2.10a Reference Manual
  3679.                                           60
  3680.  
  3681.  
  3682.  
  3683.  
  3684.           Block Handling
  3685.           --------------
  3686.  
  3687.           line_mark:          drop a line marker.  The block will be
  3688.                               expanded or shrunk, depending on the last
  3689.                               drop made.  Line marks consider the line to
  3690.                               be the smallest markable element of text.
  3691.  
  3692.           point_mark:         drop a point marker.  The block will be
  3693.                               expanded or shrunk, depending on the last
  3694.                               drop made.  Point marks consider the
  3695.                               character to be the smallest markable element
  3696.                               of text.
  3697.  
  3698.           vertical_mark:      drop a vertical marker. Vertical, or column,
  3699.                               blocks are defined by and upper and an
  3700.                               opposing lower corner.
  3701.  
  3702.           extend_mark:        extends the current marked block, using
  3703.                               whichever marking scheme is in place.  Does
  3704.                               nothing if no block is marked.
  3705.  
  3706.           unmark:             unmark all text in current buffer.
  3707.  
  3708.           cut:                cut the marked text to the block buffer.  The
  3709.                               marked text is deleted from the file.  
  3710.  
  3711.           copy:               copy the marked text to the block buffer. 
  3712.                               The marked text is NOT deleted from the file.
  3713.  
  3714.           paste:              pastes the contents of the block buffer into
  3715.                               the text at the current position.  If the
  3716.                               contents were linemarked, the contents will
  3717.                               be pasted, as lines, above the current line. 
  3718.  
  3719.           paste_replace:      pastes the contents of the block buffer at
  3720.                               the current location, overwriting the needed
  3721.                               amount of space.  This is only valid when the
  3722.                               paste buffer is Line or Vertical marked.
  3723.  
  3724.           block_move:         moves the currently marked blocked of text to
  3725.                               the cursor position.
  3726.  
  3727.           block_copy:         copies the currently marked blocked of text
  3728.                               to the cursor position.
  3729.  
  3730.           block_delete:       deletes the currently marked block of text to
  3731.                               the block buffer; identical to cut.
  3732.  
  3733.  
  3734.  
  3735.  
  3736.                              Bingo 2.10a Reference Manual
  3737.                                           61
  3738.  
  3739.  
  3740.  
  3741.  
  3742.           block_save:         writes the currently marked text to a file.
  3743.  
  3744.           swap_buf_and_block: takes the currently marked portion, and swaps
  3745.                               it with the current contents of the paste
  3746.                               buffer.  The two blocks need not be of the
  3747.                               same type.
  3748.  
  3749.           report_bsize:       reports the number of lines and characters
  3750.                               (line breaks in point marked blocks count as
  3751.                               one character) the currently marked block
  3752.                               spans.
  3753.  
  3754.           name_buffer:        allows you to change the current paste
  3755.                               buffer.  <return> specifies the default
  3756.                               buffer, and 'a'-'z' specify their respective
  3757.                               buffers.
  3758.  
  3759.           buffer_info:        displays various pertinent information about
  3760.                               all the paste buffers.
  3761.  
  3762.           look_buffer:        displays the contents of the current buffer
  3763.                               in a non-editable window.  This only displays
  3764.                               up to the first 100 lines in the buffer.
  3765.  
  3766.           cut_append:         works exactly like 'Cut', except it appends
  3767.                               the marked text to the current contents of
  3768.                               the buffer.  The text in the buffer and the
  3769.                               marked text must be of the same type.
  3770.  
  3771.           copy_append:        just as 'Cut_append', but performs a copy
  3772.                               instead.
  3773.  
  3774.  
  3775.  
  3776.  
  3777.  
  3778.  
  3779.  
  3780.  
  3781.  
  3782.  
  3783.  
  3784.  
  3785.  
  3786.  
  3787.  
  3788.  
  3789.  
  3790.  
  3791.  
  3792.  
  3793.  
  3794.                              Bingo 2.10a Reference Manual
  3795.                                           62
  3796.  
  3797.  
  3798.  
  3799.  
  3800.           Utilities
  3801.           ---------
  3802.  
  3803.           entab:              compresses the linemarked region specified or
  3804.                               the entire file by converting spaces to tabs.
  3805.  
  3806.           indent_tab:         compresses the leading spaces of the linemark
  3807.                               region specified or the entire file by
  3808.                               converting into the proper tabs.  Rounds to
  3809.                               the nearest tab stop, thus "normalizing" the
  3810.                               indention to tab stops.
  3811.  
  3812.           detab:              expands the linemarked region specified or
  3813.                               the entire file by converting tabs to spaces.
  3814.  
  3815.           shift_block:        shifts the specified linemarked region the
  3816.                               number of columns specified.  Positive
  3817.                               numbers indicate right-shifting, negative
  3818.                               numbers, left-shifting.  The character 't' is
  3819.                               used to signify tab widths: '-3t' shifts the
  3820.                               block left 3 tabwidths.
  3821.  
  3822.           lcase_block:        lowercases the linemarked region.
  3823.  
  3824.           ucase_block:        uppercases the linemarked region.
  3825.  
  3826.           fcase_block:        flips the case of the linemarked region.
  3827.  
  3828.           word_count:         counts the words in the linemarked region,
  3829.                               default the whole file.  A word here is
  3830.                               defined as non-whitespace and non-punctuation
  3831.                               characters, NOT by the settings of the
  3832.                               'conf_word' function.
  3833.  
  3834.           strip_highbit:      strips the 8th bit in the linemarked region,
  3835.                               default the whole file.
  3836.  
  3837.           sort_block:         sorts block, ascending or descending, on a
  3838.                               certain column.
  3839.  
  3840.           reform_para:        reformats a block of text to conform to the
  3841.                               right margin; a paragraph is defined as text
  3842.                               between blank lines.  The total amount of
  3843.                               text contained in a single paragraph cannot
  3844.                               be larger than 30000 characters.
  3845.  
  3846.           repeat:             repeats a keystroke n times.  If n is '*',
  3847.                               the function repeats until a search fails. 
  3848.                               The function halts repetition on a search
  3849.                               failure.
  3850.  
  3851.  
  3852.                              Bingo 2.10a Reference Manual
  3853.                                           63
  3854.  
  3855.  
  3856.  
  3857.  
  3858.  
  3859.           dup_line:           duplicates the current line and increments
  3860.                               cursor to the next line.
  3861.  
  3862.           align:              slides the linemarked region left or right to
  3863.                               match indentation with the line immediately
  3864.                               above the first marked line.  If not lines
  3865.                               are marked, the current line is aligned.
  3866.  
  3867.           match_delim:        finds the proper match for a delimiter. 
  3868.                               Delimiters include 'begin'/'end' to help
  3869.                               Pascal programmers, as well as '({[<'.
  3870.  
  3871.           time_stamp:         inserts the current date and time into the
  3872.                               text.
  3873.  
  3874.           fill_block:         fills a vertically marked block with a
  3875.                               specified character.
  3876.  
  3877.           center_text:        centers the current non-space text of the
  3878.                               current line (or linemarked block) on its
  3879.                               line, relative to the right margin.
  3880.  
  3881.  
  3882.  
  3883.  
  3884.  
  3885.  
  3886.  
  3887.  
  3888.  
  3889.  
  3890.  
  3891.  
  3892.  
  3893.  
  3894.  
  3895.  
  3896.  
  3897.  
  3898.  
  3899.  
  3900.  
  3901.  
  3902.  
  3903.  
  3904.  
  3905.  
  3906.  
  3907.  
  3908.  
  3909.  
  3910.                              Bingo 2.10a Reference Manual
  3911.                                           64
  3912.  
  3913.  
  3914.  
  3915.  
  3916.           Extra Operations
  3917.           ----------------
  3918.  
  3919.           help:                    views the help file BINGO.HLP.  This
  3920.                                    file must be located in the same
  3921.                                    directory as BE.EXE.
  3922.  
  3923.           info:                    pops up an info window, providing
  3924.                                    information on current files in the
  3925.                                    ring, and about Bingo's current
  3926.                                    condition
  3927.  
  3928.           pick_exec:               this allows you to pick a function
  3929.                                    descriptor and have it executed.
  3930.  
  3931.           quit_and_save_status:    this function saves the current status
  3932.                                    of Bingo as well as the current files,
  3933.                                    so that the next time Bingo is invoked,
  3934.                                    you will be given the option to pick up
  3935.                                    where you left off.
  3936.  
  3937.           global:                  this allows you to execute any keystroke
  3938.                                    globally, throughout all the files in
  3939.                                    the ring.  
  3940.  
  3941.           query_quote:             inserts an integer or sequence of
  3942.                                    integers as its raw ASCII character. 
  3943.                                    The decimal values must be comma
  3944.                                    delimited.
  3945.  
  3946.           ascii_table:             pops up a display of all Ascii
  3947.                                    characters.  By hitting Return on a
  3948.                                    character, you add it to the string. 
  3949.                                    When you hit Escape, the string is
  3950.                                    inserted into the text. 
  3951.  
  3952.           toggle_display:          toggles the display size between 25
  3953.                                    lines and 43/50 lines.  Will in all
  3954.                                    likelihood screw up the cursor shape,
  3955.                                    since the scan line counts will change.
  3956.  
  3957.           load_profile:            loads the profile file of your choice,
  3958.                                    searching first the current directory
  3959.                                    then Bingo's home directory.  Prompts to
  3960.                                    see if you wish to load a keyset file.
  3961.  
  3962.           write_profile:           saves the text settings of the active
  3963.                                    buffer to the profile file of your
  3964.                                    choice in either the current directory
  3965.                                    or Bingo's home directory.  Settings
  3966.                                    include:
  3967.  
  3968.                              Bingo 2.10a Reference Manual
  3969.                                           65
  3970.  
  3971.  
  3972.  
  3973.  
  3974.  
  3975.                                    &ins=1    (insert mode, 1=yes, 0=no)
  3976.                                    &tabs=5   (tabsize)
  3977.                                    &wrap=1   (wordwrap)
  3978.                                    &indent=1 (autoindention mode)
  3979.                                    &cmode=0  (C mode, 0=off, 1=mode 1, etc)
  3980.                                    &rmarg=65 (right margin)
  3981.                                    &smart=0  (smart tabs on?)
  3982.                                    &match=0  (matching mode)
  3983.                                    &bspace=0 (backspace mode)
  3984.            
  3985.           version_info:            displays various version information and
  3986.                                    the name of the person this copy was
  3987.                                    registered to, if it is a registered
  3988.                                    copy.
  3989.  
  3990.           repeat_last:             repeats the last function executed.  
  3991.  
  3992.           display_file:            will popup the named file into a
  3993.                                    scrollable box, similar to the help
  3994.                                    file.
  3995.  
  3996.  
  3997.  
  3998.  
  3999.  
  4000.  
  4001.  
  4002.  
  4003.  
  4004.  
  4005.  
  4006.  
  4007.  
  4008.  
  4009.  
  4010.  
  4011.  
  4012.  
  4013.  
  4014.  
  4015.  
  4016.  
  4017.  
  4018.  
  4019.  
  4020.  
  4021.  
  4022.  
  4023.  
  4024.  
  4025.  
  4026.                              Bingo 2.10a Reference Manual
  4027.                                           66
  4028.  
  4029.  
  4030.  
  4031.  
  4032.           System Operations
  4033.           -----------------
  4034.  
  4035.           chdir:              change the currently logged directory.
  4036.  
  4037.           exec_command:       execute a DOS command, while leaving Bingo
  4038.                               completely resident in memory.
  4039.  
  4040.           shell:              shell to DOS, leaving Bingo completely
  4041.                               resident in memory.
  4042.  
  4043.           swap_execute:       execute a DOS command while swapping Bingo
  4044.                               out.  This will cause Bingo to save copies of
  4045.                               the buffers as well as state information, and
  4046.                               leave behind an ~10k kernel.
  4047.  
  4048.           swap_shell:         shell to DOS while swapping as above.
  4049.  
  4050.  
  4051.  
  4052.  
  4053.  
  4054.  
  4055.  
  4056.  
  4057.  
  4058.  
  4059.  
  4060.  
  4061.  
  4062.  
  4063.  
  4064.  
  4065.  
  4066.  
  4067.  
  4068.  
  4069.  
  4070.  
  4071.  
  4072.  
  4073.  
  4074.  
  4075.  
  4076.  
  4077.  
  4078.  
  4079.  
  4080.  
  4081.  
  4082.  
  4083.  
  4084.                              Bingo 2.10a Reference Manual
  4085.                                           67
  4086.  
  4087.  
  4088.  
  4089.  
  4090.           Macros
  4091.           ------
  4092.  
  4093.           define_scrap:       start scrap macro definition.  
  4094.  
  4095.           onekey_def:         start single-key macro definition.
  4096.  
  4097.           twokey_def:         start two-key macro definition.
  4098.  
  4099.           scrap:              execute the scrap macro.
  4100.  
  4101.           single_key_save:    save a single macro to a file for later
  4102.                               recall.  Saves the key it is attached to
  4103.                               also.
  4104.  
  4105.           single_key_load:    load a single macro from a file.  Overwrites
  4106.                               the current definition for the key, if it has
  4107.                               one.
  4108.  
  4109.           key_set_save:       saves entire keyset, including macros, but
  4110.                               not the scrap.
  4111.  
  4112.           key_set_load:       load entire keyset.
  4113.  
  4114.           run_macro_file:     runs a macro from a file saved with
  4115.                               single_key_save.
  4116.  
  4117.           undefine_key:       undefines a key.
  4118.  
  4119.                !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  4120.                !!!!!                                         !!!!!
  4121.                !!!!! All of these functions will end a macro !!!!!
  4122.                !!!!!        being currently defined          !!!!!
  4123.                !!!!!                                         !!!!!
  4124.                !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  4125.  
  4126.           end_macro:          ends the recording of a current macro. 
  4127.                               Mostly useless, but it made for a useful menu
  4128.                               entry.
  4129.  
  4130.           key_set_impress:    THIS FUNCTION HAS BEEN DELETED AS OF VERSION
  4131.                               2.10a.
  4132.  
  4133.  
  4134.  
  4135.  
  4136.  
  4137.  
  4138.  
  4139.  
  4140.  
  4141.  
  4142.                              Bingo 2.10a Reference Manual
  4143.                                           68
  4144.  
  4145.  
  4146.  
  4147.  
  4148.           Windows
  4149.           -------
  4150.  
  4151.           window_edit:        this function ask for a filename, then splits
  4152.                               the window and essentially performs and
  4153.                               edit_file function for the requested
  4154.                               filename.
  4155.  
  4156.           window_load:        works like window_edit, except it forces a
  4157.                               reload of the named file.
  4158.  
  4159.           window_split:       this simply splits the current window in two
  4160.                               and uses the current file for both.
  4161.  
  4162.           window_vertical:    splits the current window vertically. 
  4163.                               Windows can only be split so once.
  4164.  
  4165.           window_close:       closes the current window and expands the
  4166.                               above window to use its space.
  4167.  
  4168.           window_zoom:        toggles the display between zoomed mode. 
  4169.                               When the display is zoomed, the current
  4170.                               window takes up the entire display, but Bingo
  4171.                               'remembers' the rest of the windows and will
  4172.                               restore them when zoom mode is toggled again.
  4173.  
  4174.           window_one:         this function makes the current window the
  4175.                               only window, wiping out all other windows.
  4176.  
  4177.           window_next:        this moves to the next window down, or wraps
  4178.                               to the top window if necessary.
  4179.  
  4180.           window_previous:    this moves to the next window up, or wraps to
  4181.                               the bottom if necessary.
  4182.  
  4183.           window_top:         jumps to the topmost, leftmost window.
  4184.  
  4185.           window_bottom:      jumps to the bottom-most, rightmost window.
  4186.  
  4187.           window_resize:      this allows you to resize the current window
  4188.                               (and its left or right sibling, if it exists)
  4189.                               and the window below (and *its* left or right
  4190.                               sibling, if it exists) by 'rubberbanding' the
  4191.                               current status line up and down.
  4192.  
  4193.  
  4194.  
  4195.  
  4196.  
  4197.  
  4198.  
  4199.  
  4200.                              Bingo 2.10a Reference Manual
  4201.                                           69
  4202.  
  4203.  
  4204.  
  4205.  
  4206.           Printing
  4207.           --------
  4208.  
  4209.           print_file:         print the current file, or a marked block if
  4210.                               there is one, using the current printer
  4211.                               settings, to the current destination. 
  4212.                               Whenever Bingo encounters a formfeed
  4213.                               character, it will assume that is the start
  4214.                               of a new page, and start the remainder of the
  4215.                               line at the left margin.
  4216.  
  4217.           send_lf:            send a line feed character to the
  4218.                               destination.
  4219.  
  4220.           send_ff:            send a formfeed character to the destination
  4221.  
  4222.           send_sequence:      send a sequence of character values to the
  4223.                               printer; e.g.
  4224.                                    12,12,12,12,12
  4225.                               sends a series of 5 ASCII 12's (decimal) to
  4226.                               the destination
  4227.  
  4228.  
  4229.  
  4230.  
  4231.  
  4232.  
  4233.  
  4234.  
  4235.  
  4236.  
  4237.  
  4238.  
  4239.  
  4240.  
  4241.  
  4242.  
  4243.  
  4244.  
  4245.  
  4246.  
  4247.  
  4248.  
  4249.  
  4250.  
  4251.  
  4252.  
  4253.  
  4254.  
  4255.  
  4256.  
  4257.  
  4258.                              Bingo 2.10a Reference Manual
  4259.                                           70
  4260.  
  4261.  
  4262.  
  4263.  
  4264.           Error Parsing and Undo
  4265.           ----------------------
  4266.  
  4267.           setup_err_parse:    this function will prompt you for a filename. 
  4268.                               Bingo will from then on use the named file as
  4269.                               the error file.  This must be called before
  4270.                               next_error, prev_error, or last_error are
  4271.                               called.
  4272.  
  4273.           next_error:         moves, within the current window, to the next
  4274.                               error as found in the current error file.  If
  4275.                               no more errors can be found, Bingo will say
  4276.                               so, and display the last non-blank line in
  4277.                               the error file.  Otherwise, Bingo will edit
  4278.                               the appropriate file into the current window,
  4279.                               as well as highlighting the line in the error
  4280.                               file being referenced.
  4281.  
  4282.           prev_error:         same as error except it moves backward
  4283.                               through the error file.
  4284.  
  4285.           last_error:         redisplays the last error message, if there
  4286.                               was one.
  4287.  
  4288.           rotate_kill:        pops up the current kill stack and allows you
  4289.                               to arbitrarily move a line of text to the top
  4290.                               of the stack.
  4291.  
  4292.           unkill:             inserts the top member of the stack above the
  4293.                               current line.  Removes the top member from
  4294.                               the stack.
  4295.  
  4296.           paste_kill:         inserts the top member of the stack above the
  4297.                               current line.  Leaves the stack alone.
  4298.  
  4299.           restore_line:       restores the current line to its former form.
  4300.  
  4301.  
  4302.  
  4303.  
  4304.  
  4305.  
  4306.  
  4307.  
  4308.  
  4309.  
  4310.  
  4311.  
  4312.  
  4313.  
  4314.  
  4315.  
  4316.                              Bingo 2.10a Reference Manual
  4317.                                           71
  4318.  
  4319.  
  4320.  
  4321.  
  4322.           Configuration
  4323.           -------------
  4324.  
  4325.           save_settings:      saves the current config settings to the
  4326.                               image of BE.EXE on disk.
  4327.  
  4328.           conf_color:         configure the color settings.  You select the
  4329.                               color you are interested in by pressing the
  4330.                               appropriate color.  Then, by watching the
  4331.                               bottom line on the screen and pressing the up
  4332.                               and down arrow keys for the foreground and
  4333.                               the pageup and pagedown keys for the
  4334.                               background, you select the color you want. 
  4335.                               Pressing return will select the color.  For
  4336.                               the overscan (border) attribute, only the
  4337.                               background attribute matters.
  4338.  
  4339.           conf_lfs:           alter the lfs-only setting.  If on, this
  4340.                               setting has Bingo write files with lines
  4341.                               separated by LF's only, in the UNIX fashion. 
  4342.                               Otherwise, Bingo uses CR-LF pairs to delimit
  4343.                               lines.
  4344.  
  4345.           conf_backups:       allows you to specify the extensions Bingo
  4346.                               uses to automatically create backup files. 
  4347.                               If no extension is given, no backups are
  4348.                               created.
  4349.  
  4350.           conf_eof:           alter whether Bingo writes a EOF character at
  4351.                               the end of files (^Z).
  4352.  
  4353.           conf_tabexpand:     THIS FUNCTION HAS BEEN DELETED AS OF VERSION
  4354.                               2.10a.
  4355.  
  4356.           conf_search:        allows you to predetermine which flags
  4357.                               (I/G/B/etc...) will be set initially for a
  4358.                               search and replace attempts.
  4359.  
  4360.           conf_stripping:     configure whether Bingo strips the high bit
  4361.                               of characters when reading.  Only really
  4362.                               useful when reading Wordstar files.
  4363.  
  4364.           conf_rmargin:       set the right margin.  Affects paragraph
  4365.                               reformatting and word wrap.  This changes the
  4366.                               current buffer's setting and the global
  4367.                               setting.
  4368.  
  4369.           conf_autoindent:    set whether Bingo uses autoindent mode. 
  4370.                               Affects paragraph reformatting and word wrap. 
  4371.                               This changes both the current buffer's
  4372.                               setting and the global setting.
  4373.  
  4374.                              Bingo 2.10a Reference Manual
  4375.                                           72
  4376.  
  4377.  
  4378.  
  4379.  
  4380.  
  4381.           conf_wordwrap:      set the word wrap mode.  This changes both
  4382.                               the current buffer's setting and the global
  4383.                               setting.
  4384.  
  4385.           conf_insert:        whether Bingo is in insert/overwrite mode. 
  4386.                               This changes both the current buffer's
  4387.                               setting and the global setting.
  4388.  
  4389.           conf_tabsize:       set the tabsize.  This changes both the
  4390.                               current buffer's setting and the global
  4391.                               setting.
  4392.  
  4393.           conf_backspace:     configure the backspace mode:
  4394.                                    1. Delete single chars
  4395.                                    2. Delete spaces back to tab setting
  4396.                                    3. Delete spaces to left margin
  4397.                               This changes both the current buffer's
  4398.                               setting and the global setting.
  4399.  
  4400.           conf_macro_death:   set whether a keystroke interrupts macros. 
  4401.                               If on, this will slow things down a bit, but
  4402.                               can prevent runaway macros.
  4403.  
  4404.           conf_cmode:         configure whether Bingo uses C Mode on *.c
  4405.                               and *.h files.  Allows you to choose between
  4406.                               two different modes of C indention:
  4407.  
  4408.                          for(i=0;i<10;i++){   and    for(i=0;i<10;i++)
  4409.                               ...stuff...            {
  4410.                          }                                ...stuff...
  4411.                                                      }
  4412.                               This changes both the current buffer's
  4413.                               setting and the global setting.
  4414.  
  4415.           conf_sound:         allows you to set the frequency of the beep
  4416.                               Bingo uses.  Setting it to zero will
  4417.                               effectively turn off the sound.
  4418.  
  4419.           conf_mdelay:        allows you to specify the timing delay
  4420.                               between repetitions of a function(s) being
  4421.                               executed while a mouse button is held down. 
  4422.                               For example, on reasonably quick machines,
  4423.                               paging down while holding the mouse button
  4424.                               down on one of the status line "hotspots"
  4425.                               occurred so fast with version 2.0 so as to be
  4426.                               useless.  
  4427.  
  4428.           conf_button_wait:   allows you to configure, in milliseconds, the
  4429.                               amount of delay Bingo will wait for the
  4430.                               second click of a double click.
  4431.  
  4432.                              Bingo 2.10a Reference Manual
  4433.                                           73
  4434.  
  4435.  
  4436.  
  4437.  
  4438.           conf_shadow:        silly function, configures whether Bingo uses
  4439.                               "shadow" boxes.  Play with it.
  4440.  
  4441.           conf_win_close:     controls whether Bingo automatically closes a
  4442.                               window when the file is closed.
  4443.  
  4444.           conf_def_ext:       allows you to specify the file extensions
  4445.                               Bingo will attempt to use when you specify a
  4446.                               filename without '.'.  The extensions are
  4447.                               checked in order.
  4448.  
  4449.           conf_video_mode:    allows you to choose from between three
  4450.                               screen handling options:
  4451.                               - autodetect with retrace checking
  4452.                               - autodetect with no retrace checking
  4453.                               - 43 or 50 line mode, if supported
  4454.                               Retrace checking will only be in effect if
  4455.                               there are only 25 lines to be displayed. 
  4456.                               Note:  this only changes the default
  4457.                               *startup* mode -- it changes nothing except
  4458.                               possibly the retrace mode while Bingo
  4459.                               continues to run.  To make the change take
  4460.                               effect, you will have to quit Bingo
  4461.                               completely and restart it.
  4462.  
  4463.           conf_cursor:        THIS FUNCTION HAS BEEN DROPPED FROM VERSION
  4464.                               2.10a.
  4465.  
  4466.           conf_prn:           set the printer destination, between the
  4467.                               default serial port, the default parallel
  4468.                               port, or a file.
  4469.  
  4470.           conf_tmarg:         set the top margin, in terms of number of
  4471.                               lines.
  4472.  
  4473.           conf_bmarg:         set the bottom margin, in terms of number of
  4474.                               lines.
  4475.  
  4476.           conf_lmarg:         set the left margin which will be used when
  4477.                               printing, in terms of spaces.
  4478.  
  4479.           conf_lines_per:     set the lines per page, counting the top
  4480.                               margin.
  4481.  
  4482.           conf_null:          THIS FUNCTION HAS BEEN DROPPED FROM VERSION
  4483.                               2.10a.
  4484.  
  4485.           conf_ctrl_display:  THIS FUNCTION HAS BEEN DROPPED FROM VERSION
  4486.                               2.10a.
  4487.  
  4488.           conf_kill_size:     alters the size of the kill buffer.
  4489.  
  4490.                              Bingo 2.10a Reference Manual
  4491.                                           74
  4492.  
  4493.  
  4494.  
  4495.  
  4496.  
  4497.           conf_cut_stack:     allows you to choose whether text about to be
  4498.                               discarded from the paste buffer should be
  4499.                               placed on the stack.  If this is on, this
  4500.                               will slow block operations down a bit, but it
  4501.                               is a nice safety feature.
  4502.  
  4503.           conf_auto_cut:      allows you to toggle how the 'cut' & 'copy'
  4504.                               functions respond when no block has been
  4505.                               marked.  If auto cut is active, these
  4506.                               functions will cut (or copy) the current
  4507.                               line.  If auto cut is not active, the current
  4508.                               line will be Linemarked.
  4509.  
  4510.           conf_smart_tabs:    allows you to specify whether or not "Smart"
  4511.                               tabs are active.  Smart tabs cause the
  4512.                               'insert_tab' function to tab over to the same
  4513.                               column as the next nonspace character on the
  4514.                               line previous.  This changes both the current
  4515.                               buffer's setting and the global setting.
  4516.  
  4517.           conf_matching:      configures matching mode.  If matching mode
  4518.                               is active, entering a '[{<(' character will
  4519.                               cause its matching close member to be entered
  4520.                               automatically.  This changes both the current
  4521.                               buffer's setting and the global setting.
  4522.  
  4523.           conf_trail:         allows you to configure whether or not Bingo
  4524.                               strips trailing spaces.
  4525.  
  4526.           conf_bounce:        allows you what cursor movement paradigm
  4527.                               Bingo uses.  If Bounce mode is active, Bingo
  4528.                               views the entire document as one long string
  4529.                               of characters.  Thus, you cannot move off of
  4530.                               exiting text.  Further, the cursor will
  4531.                               automatically wrap at the end of lines.  If
  4532.                               Bounce mode is turned off, cursor movement is
  4533.                               by the more traditional method, where you can
  4534.                               move any where (horizontally) you wish.
  4535.           conf_key_bios:      this governs whether or not Bingo will use
  4536.                               the Extended Keyboard Bios if it is found. 
  4537.                               On some machines, Bingo may identify it
  4538.                               incorrectly, or there may be compatibility
  4539.                               problems.  This function allows you to tell
  4540.                               Bingo to disregard the extended Bios, even if
  4541.                               it is found.  If this is on, the two sets of
  4542.                               arrow keys, for example, will be recognized
  4543.                               as different.  They will therefore have to be
  4544.                               defined separately in your keyboard config
  4545.                               file.
  4546.  
  4547.  
  4548.                              Bingo 2.10a Reference Manual
  4549.                                           75
  4550.  
  4551.  
  4552.  
  4553.  
  4554.           conf_erronly:       allows you to tell Bingo to further restrict
  4555.                               valid error lines to those containing the
  4556.                               word 'error' (any case).  
  4557.  
  4558.           conf_mouse:         controls whether or not Bingo uses a Mouse,
  4559.                               if it finds one.  Trust me, you'll like it!!!
  4560.  
  4561.           conf_profile:       controls whether Bingo will check for, and
  4562.                               load if found, the profile file of a file's
  4563.                               file extension each time a file is loaded.
  4564.  
  4565.           conf_word:          allows you to edit the string containing what
  4566.                               characters are not part of a word.
  4567.  
  4568.           conf_scr_save:      controls whether Bingo will save, and then
  4569.                               restore, the DOS screen upon startup and
  4570.                               exit.  Will cost you some memory.
  4571.  
  4572.           conf_name_save:     controls whether, and how, Bingo saves the
  4573.                               last 15 files edited.  You can turn it off,
  4574.                               tell it to save the info in the current
  4575.                               directory (where Bingo looks first upon
  4576.                               startup), or in Bingo's home directory.
  4577.  
  4578.           conf_delims:        allows you to input and edit pairs of
  4579.                               delimiters for Bingo to balance with the
  4580.                               'match_delim' function.  Both delimiters must
  4581.                               be non-blank.
  4582.  
  4583.           conf_eol_display:   allows you to enter the ASCII decimal value
  4584.                               of the character to be displayed as the end
  4585.                               of line character.  The default is 32, the
  4586.                               space character.
  4587.  
  4588.           conf_exit_to_pick:  controls Bingo's actions upon exit.  If
  4589.                               turned on, Bingo will popup an edit box when
  4590.                               you quit the program (except when you exit
  4591.                               through the abort_all function).
  4592.  
  4593.  
  4594.  
  4595.  
  4596.  
  4597.  
  4598.  
  4599.  
  4600.  
  4601.  
  4602.  
  4603.  
  4604.  
  4605.  
  4606.                              Bingo 2.10a Reference Manual
  4607.                                           76
  4608.  
  4609.  
  4610.  
  4611.  
  4612.                                   License Agreement
  4613.                                   -----------------
  4614.  
  4615.                This section tells you is how to become a registered user
  4616.           once you decide that you like the program and want to use it on a
  4617.           regular basis.
  4618.  
  4619.                Bingo is distributed under the shareware marketing concept;
  4620.           it is not free software and it has not been released to the
  4621.           public domain. The documentation, executable images, and all
  4622.           other files distributed with Bingo are copyrighted.
  4623.  
  4624.                Shareware is a way of distributing computer software that
  4625.           allows you to try out a program before you purchase it. Programs
  4626.           distributed as shareware typically give you some period of time
  4627.           to use the program and evaluate its usefulness to you. If the
  4628.           program doesn't meet your needs, you're under no obligation to
  4629.           pay for it. If you do find the program useful and wish to
  4630.           continue using it on a regular basis, the shareware program's
  4631.           author usually requests that you pay for the program by sending
  4632.           him or her a completed registration form and payment. This is the
  4633.           approach I have taken in making Bingo available to the public.
  4634.  
  4635.                If you find Bingo to be a useful addition to your software
  4636.           library, you're requested to become a registered user by
  4637.           completing the enclosed registration form and returning it along
  4638.           with the indicated license/registration fee. I hope that you will
  4639.           agree that the $40.00 license fee (for the Single Version
  4640.           registration) or $75.00 license fee (for the Lifetime
  4641.           registration) is a small price to pay for the continued use of
  4642.           the program. It requires a large investment to develop, market,
  4643.           and support a product of this complexity. Your support in the
  4644.           form of a license/registration fee will continue to make good
  4645.           software available at low prices.
  4646.  
  4647.                Quantity discounts are available to business, government,
  4648.           and other organizations that wish to use Bingo on multiple
  4649.           computer systems. Bingo is also available at very special rates
  4650.           to organizations who wish to use it for promotional purposes.
  4651.           Write the author for information on using the program this way.
  4652.  
  4653.                You are granted a limited license to use and examine Bingo
  4654.           on a trial basis to determine if Bingo is suitable for your
  4655.           needs. If you find Bingo useful and continue to use it on a
  4656.           regular basis, you should complete and return the registration
  4657.           form along with the indicated license/registration fee.
  4658.  
  4659.  
  4660.  
  4661.  
  4662.  
  4663.  
  4664.                              Bingo 2.10a Reference Manual
  4665.                                           77
  4666.  
  4667.  
  4668.  
  4669.  
  4670.                You are encouraged to make copies of Bingo for the trial use
  4671.           of other individuals and organizations, subject to the following
  4672.           restrictions:
  4673.  
  4674.                1)   All Bingo distribution files must be copied in
  4675.                     unmodified form.
  4676.                2)   You may not include any other files with the
  4677.                     distributed copy.
  4678.  
  4679.                You may not distribute Bingo with any other product or
  4680.           service without written permission of the author.
  4681.  
  4682.                Bingo may be included on electronic bulletin board systems
  4683.           for downloading by users of the bulletin board provided the above
  4684.           restrictions are met.
  4685.  
  4686.                Bingo and all accompanying materials are provided "as is"
  4687.           without warranty of any kind. The entire risk of using Bingo is
  4688.           assumed by you.
  4689.  
  4690.                The author, Christopher R. S. Schanck, makes no warranty of
  4691.           any kind, expressed or implied, including but not limited to any
  4692.           warranties of merchantability and fitness for a particular
  4693.           purpose.
  4694.  
  4695.                In no event will the author, Christopher R. S. Schanck, be
  4696.           liable for any damages whatsoever arising out of your use or
  4697.           inability to use the program.
  4698.  
  4699.                If you use Bingo on a regular basis, you should complete the
  4700.           registration form at the end of this document and return it along
  4701.           with the indicated license/registration fee. Registration gives
  4702.           you the right to use the software as documented in the license.
  4703.  
  4704.                A registration fee of $40.00 establishes you as a registered
  4705.           user of the current version of Bingo. 
  4706.  
  4707.                A registration of $75.00 establishes you as a Lifetime
  4708.           registrant, and in this situation you are entitled to the next
  4709.           version of Bingo free.  After that, you will be notified of each
  4710.           subsequent version, and they will be available for a five (5)
  4711.           dollar fee.
  4712.  
  4713.                When you submit your registration fee, unless you
  4714.           specifically request otherwise, the author will mail you a copy
  4715.           of the current version of Bingo and accompanying documentation on
  4716.           disk (3.5" or 5.25") for free.  Mailing addresses outside of the
  4717.           continental United States will need to submit a $15.00 shipping
  4718.           and handling charge.
  4719.  
  4720.  
  4721.  
  4722.                              Bingo 2.10a Reference Manual
  4723.                                           78
  4724.  
  4725.  
  4726.  
  4727.  
  4728.                            Registration Form - Bingo 2.10b
  4729.                             ------------------------------
  4730.  
  4731.           Remit to:            Christopher R.S. Schanck
  4732.                                       PO Box 279
  4733.                                    Hanover MD 21076
  4734.  
  4735.                                      Bingo 2.10b
  4736.  
  4737.             Disk size, circle one: (   3.5"   /   5.25"   / SEND NO DISK )
  4738.  
  4739.  
  4740.           Registration OPTIONS:
  4741.  
  4742.           One-Time Registration ............ _____ @ $ 40.00 each  $ _____
  4743.  
  4744.           Lifetime Registration ............ _____ @ $ 75.00 each  $ _____
  4745.  
  4746.  
  4747.  
  4748.           Bingo printed Documentation ...... _____ @ $ 15.00 each  $ _____
  4749.  
  4750.  
  4751.  
  4752.                                                          Subtotal  $ _____
  4753.  
  4754.  
  4755.           Shipping, Outside the Continental U.S. ......... $ 15.00 $ _____
  4756.  
  4757.                                                  Total (U.S.Funds) $ _____
  4758.               
  4759.  
  4760.  
  4761.           Name: __________________________________________________________
  4762.  
  4763.           Company: _______________________________________________________
  4764.  
  4765.           Address: _______________________________________________________
  4766.  
  4767.           ________________________________________________________________
  4768.  
  4769.           ________________________________________________________________
  4770.  
  4771.           Day Phone: _________________________ 
  4772.  
  4773.           Eve: _______________________________
  4774.  
  4775.  
  4776.                        Prices subject to change without notice.
  4777.  
  4778.  
  4779.  
  4780.                              Bingo 2.10a Reference Manual
  4781.                                           79
  4782.  
  4783.  
  4784.  
  4785.  
  4786.                             Registration Form - Continued
  4787.  
  4788.           I acquired Bingo 2.10b from
  4789.  
  4790.           [ ] - Friend                
  4791.  
  4792.           [ ] - Computer Club
  4793.           Which One? ______________________________________________________
  4794.  
  4795.           [ ] - Electronic BBS        
  4796.           Which One? ______________________________________________________
  4797.           Phone #? ________________________________________________________
  4798.  
  4799.           [ ] - Other
  4800.           Specify: ________________________________________________________
  4801.  
  4802.           I would also appreciate any input you would care to give
  4803.           concerning Bingo. If you have any ideas or comments that would
  4804.           make Bingo a better program, then please let me know.
  4805.  
  4806.  
  4807.  
  4808.  
  4809.  
  4810.  
  4811.  
  4812.  
  4813.  
  4814.  
  4815.  
  4816.  
  4817.  
  4818.  
  4819.  
  4820.  
  4821.  
  4822.  
  4823.  
  4824.  
  4825.  
  4826.  
  4827.  
  4828.  
  4829.  
  4830.  
  4831.  
  4832.  
  4833.  
  4834.  
  4835.  
  4836.  
  4837.  
  4838.                              Bingo 2.10a Reference Manual
  4839.                                           80
  4840.  
  4841.  
  4842.  
  4843.  
  4844.                                       The Author
  4845.                                       ----------
  4846.  
  4847.                I received my M.S. in Computer Science from The Ohio State
  4848.           University in March of 1990, and am now employed by a large
  4849.           engineering/manufacturing firm in the Baltimore area.  I was born
  4850.           in a steel town in Eastern Pennsylvania, and attended The
  4851.           Pennsylvania State University as an undergraduate, graduating in
  4852.           May of 1988. I hold a first-degree Black Belt in Tae Kwon Do, and
  4853.           I am an avid reader of science-fiction, fantasy, military
  4854.           fiction, mythology, and just about any other occurance of the
  4855.           printed word.
  4856.  
  4857.  
  4858.  
  4859.  
  4860.  
  4861.  
  4862.  
  4863.  
  4864.  
  4865.  
  4866.  
  4867.  
  4868.  
  4869.  
  4870.  
  4871.  
  4872.  
  4873.  
  4874.  
  4875.  
  4876.  
  4877.  
  4878.  
  4879.  
  4880.  
  4881.  
  4882.  
  4883.  
  4884.  
  4885.  
  4886.  
  4887.  
  4888.  
  4889.  
  4890.  
  4891.  
  4892.  
  4893.  
  4894.  
  4895.  
  4896.                              Bingo 2.10a Reference Manual
  4897.                                           81
  4898.  
  4899.  
  4900.  
  4901.  
  4902.                                    Acknowledgements
  4903.                                    ----------------
  4904.  
  4905.                There are many I must acknowledge for the inspiration for
  4906.           writing this program: family, friends, colleagues. In addition, I
  4907.           want to thank Borland for their excellent TurboC compiler, which
  4908.           I used to write Bingo; IBM for making my beloved baby, lo those
  4909.           many years ago; and all the other folks who wrote software I used
  4910.           to create Bingo.  Thanks to all my computer science professors,
  4911.           who instilled the knowledge to write such an application in me,
  4912.           often against my will.  I also thank the members of the Columbus
  4913.           Computer Society (CCS), particularly the members of the
  4914.           Programmer's SIG, several of whom served as Beta test people,
  4915.           putting their programs In Harm's Way as they tested features.
  4916.                Thanks to the folks at Home Box Office for running an
  4917.           endless amount of truly sad movies at all hours of the night to
  4918.           keep me company on some of the more involved programming
  4919.           adventures.  
  4920.                And mucho thanks to my premier beta-tester, Bob Boyken, who
  4921.           was also the first registrant of version 1.1a.  Bob provided me
  4922.           with much needed time, effort, and ideas, not to mention a help
  4923.           file.  His efforts, both in using Bingo regularly, and in testing
  4924.           things for me on particular hardware combinations, was nothing
  4925.           short of awesome.
  4926.                Additional thanks to Rich Thompson, for looking at the
  4927.           earliest virtual-memory version of 2.10 and not cringing.  Or at
  4928.           least not cringing too much.
  4929.  
  4930.  
  4931.  
  4932.  
  4933.  
  4934.  
  4935.  
  4936.  
  4937.  
  4938.  
  4939.  
  4940.  
  4941.  
  4942.  
  4943.  
  4944.  
  4945.  
  4946.  
  4947.  
  4948.  
  4949.  
  4950.  
  4951.  
  4952.  
  4953.  
  4954.                              Bingo 2.10a Reference Manual
  4955.                                           82
  4956.  
  4957.  
  4958.  
  4959.  
  4960.                                         Index
  4961.                                         -----
  4962.  
  4963.           abort . . . . . . . . . . . . . . . . . .  14, 15, 33, 41, 55, 76
  4964.           abort_all . . . . . . . . . . . . . . . . . . . . . .  33, 55, 76
  4965.           again . . . . . . . . .  2, 5, 13, 19, 25, 31, 42, 43, 47, 57, 69
  4966.           align . . . . . . . . . . . . . . . . . . . . . . . . . 2, 39, 64
  4967.           ascii_table . . . . . . . . . . . . . . . . . . . . .  30, 41, 65
  4968.           author  . . . . . . . . . . . . . . . . . . . . .  45, 77, 78, 81
  4969.           back_space  . . . . . . . . . . . . . . . . . . . . . . .  53, 54
  4970.           back_tab  . . . . . . . . . . . . . . . . . . . . . . . . . .  59
  4971.           begin_line  . . . . . . . . . . . . . . . . . . . . . . . . .  59
  4972.           block_copy  . . . . . . . . . . . . . . . . . . . . . . .  38, 61
  4973.           block_delete  . . . . . . . . . . . . . . . . . . . . . .  38, 61
  4974.           block_load  . . . . . . . . . . . . . . . . . . . . . . . . .  56
  4975.           block_move  . . . . . . . . . . . . . . . . . . . . . . .  38, 61
  4976.           block_save  . . . . . . . . . . . . . . . . . . . . . . . . .  62
  4977.           bot_of_file . . . . . . . . . . . . . . . . . . . . . . . . .  59
  4978.           bottom_of_block . . . . . . . . . . . . . . . . . . . . . . .  59
  4979.           bottom_of_screen  . . . . . . . . . . . . . . . . . . . . . .  59
  4980.           buffer_info . . . . . . . . . . . . . . . . . . . . . . .  38, 62
  4981.           carriage  . . . . . . . . . . . . . . . . . . . . . . . .  32, 53
  4982.           center_line . . . . . . . . . . . . . . . . . . . . . . . . .  59
  4983.           chdir . . . . . . . . . . . . . . . . . . . . . . . . . .  43, 67
  4984.           choose_file . . . . . . . . . . . . . . . . . . . . . . .  32, 55
  4985.           clean_all   . . . . . . . . . . . . . . . . . . . . . . . . .  34
  4986.           clean_file  . . . . . . . . . . . . . . . . . . . . . . . . .  34
  4987.           compuserve  . . . . . . . . . . . . . . . . . . . . . . . . . . 6
  4988.           conf_auto_cut . . . . . . . . . . . . . . . . . . . . . . . .  75
  4989.           conf_autoindent . . . . . . . . . . . . . . . . . . . . . . .  72
  4990.           conf_backspace  . . . . . . . . . . . . . . . . . . . . . . .  73
  4991.           conf_backups  . . . . . . . . . . . . . . . . . . . . . . . .  72
  4992.           conf_bmarg  . . . . . . . . . . . . . . . . . . . . . . . . .  74
  4993.           conf_bounce . . . . . . . . . . . . . . . . . . . . . . . . .  75
  4994.           conf_button_wait  . . . . . . . . . . . . . . . . . . . . . .  73
  4995.           conf_cmode  . . . . . . . . . . . . . . . . . . . . . . . . .  73
  4996.           conf_color  . . . . . . . . . . . . . . . . . . . . . . . . .  72
  4997.           conf_ctrl_display . . . . . . . . . . . . . . . . . . . . . .  74
  4998.           conf_cursor . . . . . . . . . . . . . . . . . . . . . . . . .  74
  4999.           conf_cut_stack  . . . . . . . . . . . . . . . . . . . . .  51, 75
  5000.           conf_def_ext  . . . . . . . . . . . . . . . . . . . . . . . .  74
  5001.           conf_eof  . . . . . . . . . . . . . . . . . . . . . . . .  32, 72
  5002.           conf_erronly  . . . . . . . . . . . . . . . . . . . . . . . .  76
  5003.           conf_insert . . . . . . . . . . . . . . . . . . . . . . . . .  73
  5004.           conf_key_bios . . . . . . . . . . . . . . . . . . . . . . . .  75
  5005.           conf_kill_size  . . . . . . . . . . . . . . . . . . . . .  51, 74
  5006.           conf_lfs  . . . . . . . . . . . . . . . . . . . . . . . .  32, 72
  5007.           conf_lines_per  . . . . . . . . . . . . . . . . . . . . . . .  74
  5008.           conf_lmarg  . . . . . . . . . . . . . . . . . . . . . . . . .  74
  5009.           conf_macro_death  . . . . . . . . . . . . . . . . . . . . . .  73
  5010.           conf_matching . . . . . . . . . . . . . . . . . . . . . . . .  75
  5011.  
  5012.                              Bingo 2.10a Reference Manual
  5013.                                           83
  5014.  
  5015.  
  5016.  
  5017.  
  5018.           conf_mdelay . . . . . . . . . . . . . . . . . . . . . . .  27, 73
  5019.           conf_mouse  . . . . . . . . . . . . . . . . . . . . . . . . .  76
  5020.           conf_null . . . . . . . . . . . . . . . . . . . . . . . . . .  74
  5021.           conf_prn  . . . . . . . . . . . . . . . . . . . . . . . . . .  74
  5022.           conf_profile  . . . . . . . . . . . . . . . . . . . . . . . .  76
  5023.           conf_rmargin  . . . . . . . . . . . . . . . . . . . . . . . .  72
  5024.           conf_search . . . . . . . . . . . . . . . . . . . . . . . . .  72
  5025.           conf_shadow . . . . . . . . . . . . . . . . . . . . . . . . .  74
  5026.           conf_smart_tabs . . . . . . . . . . . . . . . . . . . . . . .  75
  5027.           conf_sound  . . . . . . . . . . . . . . . . . . . . . . . . .  73
  5028.           conf_stripping  . . . . . . . . . . . . . . . . . . . . . . .  72
  5029.           conf_tabexpand  . . . . . . . . . . . . . . . . . . . . . . .  72
  5030.           conf_tabsize  . . . . . . . . . . . . . . . . . . . . . . . .  73
  5031.           conf_tmarg  . . . . . . . . . . . . . . . . . . . . . . . . .  74
  5032.           conf_trail  . . . . . . . . . . . . . . . . . . . . . . . . .  75
  5033.           conf_video_mode . . . . . . . . . . . . . . . . . . . . . . .  74
  5034.           conf_wordwrap . . . . . . . . . . . . . . . . . . . . . . . .  73
  5035.           copy  . . . .  2, 4, 6, 8, 34, 37, 38, 51, 56, 61, 62, 66, 75, 78
  5036.           copy_append . . . . . . . . . . . . . . . . . . . . . . . . .  62
  5037.           cur_file  . . . . . . . . . . . . . . . . . . . . . . . . . .  23
  5038.           cursor_down . . . . . . . . . . . . . . . . . . . . . . .  27, 59
  5039.           cursor_left . . . . . . . . . . . . . . . . . . . . . . . . .  59
  5040.           cursor_right  . . . . . . . . . . . . . . . . . . . . . . . .  59
  5041.           cursor_up . . . . . . . . . . . . . . . . . . . . . . . . . .  59
  5042.           cut . . . . . . . . . . . . . . . . .  37, 38, 51, 54, 61, 62, 75
  5043.           cut_append  . . . . . . . . . . . . . . . . . . . . . . . . .  62
  5044.           default_bspace  . . . . . . . . . . . . . . . . . . . . . . .  54
  5045.           default_del . . . . . . . . . . . . . . . . . . . . . . . . .  54
  5046.           define_scrap  . . . . . . . . . . . . . . . . . . . . . . . .  68
  5047.           del_bol . . . . . . . . . . . . . . . . . . . . . . .  31, 51, 54
  5048.           del_char  . . . . . . . . . . . . . . . . . . . . . . . .  53, 54
  5049.           del_eol . . . . . . . . . . . . . . . . . . . . . . .  31, 51, 53
  5050.           del_line  . . . . . . . . . . . . . . . . . . . . . .  31, 51, 53
  5051.           del_word  . . . . . . . . . . . . . . . . . . . . . . . .  31, 54
  5052.           delete_file . . . . . . . . . . . . . . . . . . . . . . .  34, 56
  5053.           detab . . . . . . . . . . . . . . . . . . . . . . . . . 1, 39, 63
  5054.           display_file  . . . . . . . . . . . . . . . . . . . . . . . .  42
  5055.           down_page . . . . . . . . . . . . . . . . . . . . . . . .  27, 59
  5056.           dup_line  . . . . . . . . . . . . . . . . . . . . . . . . . .  64
  5057.           edit_file . . . . . . . . . . . . . . . .  32, 34, 48, 50, 55, 69
  5058.           end_line  . . . . . . . . . . . . . . . . . . . . . . . . . .  59
  5059.           end_macro . . . . . . . . . . . . . . . . . . . . . . . . . .  68
  5060.           entab . . . . . . . . . . . . . . . . . . . . . . . . . 1, 39, 63
  5061.           exec_command  . . . . . . . . . . . . . . . . . . . . . .  43, 67
  5062.           extend_mark . . . . . . . . . . . . . . . . . . . . . . .  37, 61
  5063.           fcase_block . . . . . . . . . . . . . . . . . . . . . . . . .  63
  5064.           file  . .  1-3, 5, 7-11, 14, 16, 18, 19, 21-24, 27, 32-37, 39-42,
  5065.                                  47-51, 53, 55-63, 65, 66, 68-71, 74-76, 82
  5066.           file_all  . . . . . . . . . . . . . . . . . . . . . . . . . .  55
  5067.           fill_block  . . . . . . . . . . . . . . . . . . . . . . . . .  64
  5068.           global  . . . . . . . . . . . . . . .  41, 57, 58, 65, 72, 73, 75
  5069.  
  5070.                              Bingo 2.10a Reference Manual
  5071.                                           84
  5072.  
  5073.  
  5074.  
  5075.  
  5076.           help  . . . . . . . 1, 2, 6, 8, 14, 26, 29, 40, 42, 51, 64-66, 82
  5077.           indent_down . . . . . . . . . . . . . . . . . . . . . . . . .  60
  5078.           indent_up . . . . . . . . . . . . . . . . . . . . . . . . . .  60
  5079.           info  . . . . . . . . . . . 4, 14, 29, 38, 40, 43, 62, 65, 66, 76
  5080.           insert_tab  . . . . . . . . . . . . . . . . . . . . . . .  53, 75
  5081.           jump  . . . . . . . . . . . . . . . . . . . . . .  36, 50, 59, 60
  5082.           jump_mark . . . . . . . . . . . . . . . . . . . . . . . . . .  60
  5083.           key_set_impress . . . . . . . . . . . . . . . . . . . . . . .  68
  5084.           key_set_load  . . . . . . . . . . . . . . . . . . . . . .  19, 68
  5085.           key_set_save  . . . . . . . . . . . . . . . . . . . . . . . .  68
  5086.           last_error  . . . . . . . . . . . . . . . . . . . . . . . . .  71
  5087.           lcase_block . . . . . . . . . . . . . . . . . . . . . . . . .  63
  5088.           license . . . . . . . . . . . . . . . . . . . . . . . . 4, 77, 78
  5089.           line_mark . . . . . . . . . . . . . . . . . . . . . . . . . .  61
  5090.           load_file . . . . . . . . . . . . . . . . . .  22, 23, 32, 48, 55
  5091.           load_profile  . . . . . . . . . . . . . . . . . . . . . .  41, 65
  5092.           look_buffer . . . . . . . . . . . . . . . . . . . . . . .  38, 62
  5093.           macro .  1, 2, 5, 9, 18, 21-23, 27, 35, 41, 45-47, 50, 58, 68, 73
  5094.           main_menu . . . . . . . . . . . . . . . . . . . . . . . .  13, 53
  5095.           match_delim . . . . . . . . . . . . . . . . . . . . . . .  64, 76
  5096.           modify_save . . . . . . . . . . . . . . . . . . .  22, 23, 34, 55
  5097.           modify_save_all . . . . . . . . . . . . . . . . .  22, 23, 34, 55
  5098.           name_buffer . . . . . . . . . . . . . . . . . . . . . . .  38, 62
  5099.           next_error  . . . . . . . . . . . . . . . . . . . . .  23, 50, 71
  5100.           next_file . . . . . . . . . . . . . . . . . . . . . . . . . .  55
  5101.           next_word . . . . . . . . . . . . . . . . . . . . . . . . . .  59
  5102.           onekey_def  . . . . . . . . . . . . . . . . . . . . . . . . .  68
  5103.           open_end  . . . . . . . . . . . . . . . . . . . . . . . . . .  23
  5104.           paste . . . . . . . . . . . .  14, 37, 38, 43, 51, 61, 62, 71, 75
  5105.           paste_kill  . . . . . . . . . . . . . . . . . . . . . . .  51, 71
  5106.           paste_replace . . . . . . . . . . . . . . . . . . . . . .  38, 61
  5107.           pick_exec . . . . . . . . . . . . . . . . . . . . . . . . . .  65
  5108.           pick_file   . . . . . . . . . . . . . . . . . . . . . . . . .  34
  5109.           place_mark  . . . . . . . . . . . . . . . . . . . . . . . . .  60
  5110.           point_mark  . . . . . . . . . . . . . . . . . . . . . . .  27, 61
  5111.           prev_error  . . . . . . . . . . . . . . . . . . . . . . .  50, 71
  5112.           prev_file . . . . . . . . . . . . . . . . . . . . . . . . . .  55
  5113.           prev_word . . . . . . . . . . . . . . . . . . . . . . . . . .  59
  5114.           print_file  . . . . . . . . . . . . . . . . . . . . . . .  49, 70
  5115.           query_quote . . . . . . . . . . . . . . . . . . . . . . . . .  65
  5116.           quit  . . . . . . . . . . . . . 14, 32-34, 40, 55, 57, 65, 74, 76
  5117.           quit_all  . . . . . . . . . . . . . . . . . . . . . . . .  32, 55
  5118.           quit_and_save_status  . . . . . . . . . . . . . . . . . . . .  65
  5119.           reform_para . . . . . . . . . . . . . . . . . . . . . . . . .  63
  5120.           register  . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
  5121.           rename_file . . . . . . . . . . . . . . . . . . . . . . .  32, 55
  5122.           repeat  . . . . . . . . . . . . . . . .  1, 3, 42, 45, 57, 63, 66
  5123.           repeat_last   . . . . . . . . . . . . . . . . . . . . . . . .  42
  5124.           replace . . . . . . . .  1, 3, 21, 35, 37, 38, 41, 57, 58, 61, 72
  5125.           report_bsize  . . . . . . . . . . . . . . . . . . . . . .  38, 62
  5126.           restore_line  . . . . . . . . . . . . . . . . . . . . . .  51, 71
  5127.  
  5128.                              Bingo 2.10a Reference Manual
  5129.                                           85
  5130.  
  5131.  
  5132.  
  5133.  
  5134.           rotate_kill . . . . . . . . . . . . . . . . . . . . . . .  51, 71
  5135.           run_macro_file  . . . . . . . . . . . . . . . . . . . . . . .  68
  5136.           save_all  . . . . . . . . . . . . . . . . . . . .  22, 23, 34, 55
  5137.           save_file . . . . . . . . . . . . . . . . . . . . . . . . . .  55
  5138.           save_settings . . . . . . . . . . . . . . . . . . . . . . . .  72
  5139.           scrap . . . . . . . . . . . . . . . . . . . . . . . . . .  46, 68
  5140.           scroll_down . . . . . . . . . . . . . . . . . . . . . . . . .  60
  5141.           scroll_up . . . . . . . . . . . . . . . . . . . . . . . . . .  60
  5142.           search  . . . . . .  1, 3, 16, 21, 23, 35, 41, 45, 57, 58, 63, 72
  5143.           search_macro  . . . . . . . . . . . . . . . . . . . . . . . .  58
  5144.           send_ff . . . . . . . . . . . . . . . . . . . . . . . . . . .  70
  5145.           send_lf . . . . . . . . . . . . . . . . . . . . . . . . . . .  70
  5146.           send_sequence . . . . . . . . . . . . . . . . . . . . . . . .  70
  5147.           setup_err_parse . . . . . . . . . . . . . . . . . . .  23, 50, 71
  5148.           shell . . . . . . . . . . . . . . . . . . . . . . . . . .  43, 67
  5149.           shift_block . . . . . . . . . . . . . . . . . . . . . . . . .  63
  5150.           show_marks  . . . . . . . . . . . . . . . . . . . . . . . . .  60
  5151.           single_key_load . . . . . . . . . . . . . . . . . . . . . . .  68
  5152.           single_key_save . . . . . . . . . . . . . . . . . . . . . . .  68
  5153.           snap_to_mouse_xy  . . . . . . . . . . . . . . . . . .  26, 27, 60
  5154.           sort_block  . . . . . . . . . . . . . . . . . . . . . . . . .  63
  5155.           strip_highbit . . . . . . . . . . . . . . . . . . . . . . . .  63
  5156.           support . . . . . . . . . . . . .  1, 2, 4, 6, 12, 29, 35, 45, 77
  5157.           swap_buf_and_block  . . . . . . . . . . . . . . . . . . . . .  62
  5158.           swap_execute  . . . . . . . . . . . . . . . . . .  22, 23, 43, 67
  5159.           swap_shell  . . . . . . . . . . . . . . . . . . . . . . .  43, 67
  5160.           switch_file . . . . . . . . . . . . . . . . . . . . . . .  34, 55
  5161.           time_stamp  . . . . . . . . . . . . . . . . . . . . . . . . .  64
  5162.           toggle_autoindent . . . . . . . . . . . . . . . . . . . . . .  53
  5163.           toggle_cmode  . . . . . . . . . . . . . . . . . . . . . .  52, 53
  5164.           toggle_display  . . . . . . . . . . . . . . . . . . . . . . .  65
  5165.           toggle_ins  . . . . . . . . . . . . . . . . . . . . . . . . .  53
  5166.           toggle_wrap . . . . . . . . . . . . . . . . . . . . . . . . .  53
  5167.           top_of_block  . . . . . . . . . . . . . . . . . . . . . . . .  59
  5168.           top_of_file . . . . . . . . . . . . . . . . . . . . . . . . .  59
  5169.           top_of_screen . . . . . . . . . . . . . . . . . . . . . . . .  59
  5170.           twokey_def  . . . . . . . . . . . . . . . . . . . . . . . . .  68
  5171.           ucase_block . . . . . . . . . . . . . . . . . . . . . . . . .  63
  5172.           undefine_key  . . . . . . . . . . . . . . . . . . . . . . . .  68
  5173.           unkill  . . . . . . . . . . . . . . . . . . . . . . .  31, 51, 71
  5174.           unmark  . . . . . . . . . . . . . . . . . . . . . . . . .  58, 61
  5175.           up_page . . . . . . . . . . . . . . . . . . . . . . . . . . .  59
  5176.           version_info  . . . . . . . . . . . . . . . . . . . . . . . 4, 66
  5177.           vertical_mark . . . . . . . . . . . . . . . . . . . . . . . .  61
  5178.           virtual memory  . . . . . . . . . . . . . . . . . .  1, 5, 10, 11
  5179.           window_bottom . . . . . . . . . . . . . . . . . . . . . .  22, 69
  5180.           window_close  . . . . . . . . . . . . . . . . . . . . . . . .  69
  5181.           window_edit . . . . . . . . . . . . . . . . . . . . . . .  48, 69
  5182.           window_load . . . . . . . . . . . . . . . . . . . . . . .  48, 69
  5183.           window_next . . . . . . . . . . . . . . . . . . . . . . . . .  69
  5184.           window_one  . . . . . . . . . . . . . . . . . . . . .  23, 48, 69
  5185.  
  5186.                              Bingo 2.10a Reference Manual
  5187.                                           86
  5188.  
  5189.  
  5190.  
  5191.  
  5192.           window_previous . . . . . . . . . . . . . . . . . . . . .  23, 69
  5193.           window_resize . . . . . . . . . . . . . . . . . . . .  23, 48, 69
  5194.           window_split  . . . . . . . . . . . . . . . . . . . .  23, 48, 69
  5195.           window_top  . . . . . . . . . . . . . . . . . . . . . . . . .  69
  5196.           window_vertical . . . . . . . . . . . . . . . . . . . . .  48, 69
  5197.           window_zoom . . . . . . . . . . . . . . . . . . . . . . .  48, 69
  5198.           word_count  . . . . . . . . . . . . . . . . . . . . . . . . .  63
  5199.           write_profile . . . . . . . . . . . . . . . . . . . . . .  41, 65
  5200.           zap_file  . . . . . . . . . . . . . . . . . . . . . . . .  34, 56
  5201.  
  5202.  
  5203.  
  5204.  
  5205.  
  5206.  
  5207.  
  5208.  
  5209.  
  5210.  
  5211.  
  5212.  
  5213.  
  5214.  
  5215.  
  5216.  
  5217.  
  5218.  
  5219.  
  5220.  
  5221.  
  5222.  
  5223.  
  5224.  
  5225.  
  5226.  
  5227.  
  5228.  
  5229.  
  5230.  
  5231.  
  5232.  
  5233.  
  5234.  
  5235.  
  5236.  
  5237.  
  5238.  
  5239.  
  5240.  
  5241.  
  5242.  
  5243.  
  5244.                              Bingo 2.10a Reference Manual
  5245.                                           87
  5246.  
  5247.